dev-tcltk/expect: Fork and patch official version 85/170685/7
authorAleksander Mistewicz <a.mistewicz@samsung.com>
Thu, 8 Feb 2018 14:34:04 +0000 (15:34 +0100)
committerAleksander Mistewicz <a.mistewicz@samsung.com>
Mon, 23 Jul 2018 17:35:57 +0000 (19:35 +0200)
It is modified version of the one provided by the official Gentoo
repository. It contains modified patch from:
    http://repository.timesys.com/buildsources/e/expect/expect-5.43.0/expect-5.43.0-timesys-allow-cross-compile-v2.patch

Change-Id: I22d2752738e0768d426f5d4a5cff600003103913
Signed-off-by: Aleksander Mistewicz <a.mistewicz@samsung.com>
dev-tcltk/expect/Manifest [new file with mode: 0644]
dev-tcltk/expect/expect-5.45-r1.ebuild [new file with mode: 0644]
dev-tcltk/expect/files/expect-5.43.0-timesys-allow-cross-compile-v3.patch [new file with mode: 0644]
dev-tcltk/expect/files/expect-5.44.1.15-ldflags.patch [new file with mode: 0644]
dev-tcltk/expect/files/expect-5.45-darwin-install_name.patch [new file with mode: 0644]
dev-tcltk/expect/files/expect-5.45-format-security.patch [new file with mode: 0644]
dev-tcltk/expect/files/expect-5.45-gfbsd.patch [new file with mode: 0644]
dev-tcltk/expect/files/expect-5.45-headers.patch [new file with mode: 0644]
dev-tcltk/expect/metadata.xml [new file with mode: 0644]

diff --git a/dev-tcltk/expect/Manifest b/dev-tcltk/expect/Manifest
new file mode 100644 (file)
index 0000000..12480be
--- /dev/null
@@ -0,0 +1 @@
+DIST expect5.45.tar.gz 628808 BLAKE2B d7260d3b2ce1bcd72deef121e1f994f45bfa5397291692d794c9b8ad627d7ac183689ba00ba22f728853ac03b6b083fb6f283dc5c453aa991e04263c217be552 SHA512 be991c68241e607b3a689eae7e7966056dbfb577e857331d54a4911bd178c1816425217603b43918ad1b6d2e966271a0f01e79d7028a22e223562d59d10c8c51
diff --git a/dev-tcltk/expect/expect-5.45-r1.ebuild b/dev-tcltk/expect/expect-5.45-r1.ebuild
new file mode 100644 (file)
index 0000000..084cc5c
--- /dev/null
@@ -0,0 +1,85 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools eutils
+
+MY_P="${PN}${PV}"
+DESCRIPTION="tool for automating interactive applications"
+HOMEPAGE="http://expect.nist.gov/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~m68k-mint ~x86-solaris"
+IUSE="debug doc threads"
+
+# 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:0[threads?]"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+       sed -i "s:/usr/local/bin:${EPREFIX}/usr/bin:" expect.man || die
+       # stops any example scripts being installed by default
+       sed -i \
+               -e 's/^SCRIPT_LIST[[:space:]]*=/_&/' \
+               -e 's/^SCRIPTS[[:space:]]*=/_&/' \
+               -e 's/^SCRIPTS_MANPAGES[[:space:]]*=/_&/' \
+               Makefile.in || die
+
+       epatch "${FILESDIR}"/${PN}-5.45-gfbsd.patch
+       epatch "${FILESDIR}"/${PN}-5.44.1.15-ldflags.patch
+       epatch "${FILESDIR}"/${PN}-5.45-headers.patch #337943
+       epatch "${FILESDIR}"/${PN}-5.45-format-security.patch
+       epatch "${FILESDIR}"/${PN}-5.43.0-timesys-allow-cross-compile-v3.patch
+       sed -i 's:ifdef HAVE_SYS_WAIT_H:ifndef NO_SYS_WAIT_H:' *.c
+
+       # fix install_name on darwin
+       [[ ${CHOST} == *-darwin* ]] && \
+               epatch "${FILESDIR}"/${P}-darwin-install_name.patch
+
+       mv configure.{in,ac} || die
+
+       eautoconf
+}
+
+src_configure() {
+       # the 64bit flag is useless ... it only adds 64bit compiler flags
+       # (like -m64) which the target toolchain should already handle
+       econf \
+               --with-tcl="${EPREFIX}/usr/$(get_libdir)" \
+               --disable-64bit \
+               --enable-shared \
+               $(use_enable threads) \
+               $(use_enable debug symbols mem)
+}
+
+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
+       emake test
+}
+
+expect_make_var() {
+       touch pkgIndex.tcl-hand
+       printf 'all:;echo $('$1')\ninclude Makefile' | emake --no-print-directory -s -f -
+       rm -f pkgIndex.tcl-hand || die
+}
+
+src_install() {
+       default
+
+       if use doc ; then
+               docinto examples
+               dodoc \
+                       example/README \
+                       $(printf 'example/%s ' $(expect_make_var _SCRIPTS)) \
+                       $(printf 'example/%s.man ' $(expect_make_var _SCRIPTS_MANPAGES))
+       fi
+}
diff --git a/dev-tcltk/expect/files/expect-5.43.0-timesys-allow-cross-compile-v3.patch b/dev-tcltk/expect/files/expect-5.43.0-timesys-allow-cross-compile-v3.patch
new file mode 100644 (file)
index 0000000..080fc0c
--- /dev/null
@@ -0,0 +1,112 @@
+--- expect-5.43/configure.in.orig      2009-03-16 13:32:44.000000000 -0400
++++ expect-5.43/configure.in   2009-03-16 13:38:03.000000000 -0400
+@@ -639,7 +639,7 @@
+ ,
+       AC_MSG_RESULT(no)
+ ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++      AC_MSG_RESULT(no)
+ )
+ AC_MSG_CHECKING([if any value exists for WNOHANG])
+@@ -664,7 +664,9 @@
+       AC_MSG_RESULT(no)
+       AC_DEFINE(WNOHANG_BACKUP_VALUE, 1)
+ ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++      AC_MSG_RESULT(yes)
++      AC_DEFINE_UNQUOTED(WNOHANG_BACKUP_VALUE, 1)
++      rm -f wnohang
+ )
+ #-----Stolen from Tcl's configure file-------------------------------
+@@ -755,7 +755,8 @@
+       AC_DEFINE(REARM_SIG)
+ ,
+       AC_MSG_RESULT(no)
+-, AC_MSG_WARN([Expect can't be cross compiled])
++,
++      AC_MSG_RESULT(no)
+ )
+ # HPUX7 has trouble with the big cat so split it
+@@ -920,7 +921,9 @@
+ ,
+         AC_MSG_RESULT(no)
+ ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++        AC_MSG_RESULT(yes)
++        AC_DEFINE(HAVE_SGTTYB)
++        PTY_TYPE=sgttyb
+ )
+ # mach systems have include files for unimplemented features
+@@ -947,7 +947,9 @@
+ ,
+         AC_MSG_RESULT(no)
+ ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++        AC_DEFINE(HAVE_TERMIO)
++        PTY_TYPE=termios
++        AC_MSG_RESULT(yes)
+ )
+   # now check for the new style ttys (not yet posix)
+@@ -969,7 +971,9 @@
+   ,
+         AC_MSG_RESULT(no)
+   ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++        AC_DEFINE(HAVE_TERMIOS)
++        PTY_TYPE=termios
++        AC_MSG_RESULT(yes)
+   )
+ fi
+@@ -996,7 +996,7 @@
+ ,
+       AC_MSG_RESULT(no)
+ ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++      AC_MSG_RESULT(no)
+ )
+ AC_MSG_CHECKING([if TIOCGWINSZ in termios.h])
+@@ -1018,7 +1018,7 @@
+ ,
+       AC_MSG_RESULT(no)
+ ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++      AC_MSG_RESULT(no)
+ )
+ # finally check for Cray style ttys
+@@ -1039,7 +1039,7 @@
+ ,
+       AC_MSG_RESULT(no)
+ ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++      AC_MSG_RESULT(no)
+ )
+ #
+@@ -1071,7 +1071,9 @@
+ AC_HAVE_FUNCS(getpty)
+ # following test sets SETPGRP_VOID if setpgrp takes 0 args, else takes 2
+-AC_FUNC_SETPGRP
++cat >>expect_cf.h <<\_ACEOF
++#define SETPGRP_VOID 1
++_ACEOF
+ #
+ # check for timezones
+@@ -1091,7 +1091,9 @@
+       AC_MSG_RESULT(yes),
+       AC_MSG_RESULT(no)
+ ,
+-      AC_MSG_ERROR([Expect can't be cross compiled])
++      AC_DEFINE(HAVE_SV_TIMEZONE)
++      AC_MSG_RESULT(yes),
++      AC_MSG_RESULT(no)
+ )
diff --git a/dev-tcltk/expect/files/expect-5.44.1.15-ldflags.patch b/dev-tcltk/expect/files/expect-5.44.1.15-ldflags.patch
new file mode 100644 (file)
index 0000000..be3641c
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/Makefile.in b/Makefile.in
+index cc2c79b..1083eaf 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -148,7 +148,7 @@ OBJEXT             = @OBJEXT@
+ RANLIB                = @RANLIB@
+ RANLIB_STUB   = @RANLIB_STUB@
+ SHLIB_CFLAGS  = @SHLIB_CFLAGS@
+-SHLIB_LD      = @SHLIB_LD@
++SHLIB_LD      = @SHLIB_LD@ $(LDFLAGS)
+ SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
+ STLIB_LD      = @STLIB_LD@
+ TCL_DEFS      = @TCL_DEFS@
diff --git a/dev-tcltk/expect/files/expect-5.45-darwin-install_name.patch b/dev-tcltk/expect/files/expect-5.45-darwin-install_name.patch
new file mode 100644 (file)
index 0000000..f5470aa
--- /dev/null
@@ -0,0 +1,13 @@
+Add install_name (soname)
+
+--- tclconfig/tcl.m4
++++ tclconfig/tcl.m4
+@@ -1703,7 +1703,7 @@
+           ])
+           # TEA specific: link shlib with current and compatiblity version flags
+           vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d`
+-          SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}"
++          SHLIB_LD="${SHLIB_LD} -install_name \$(pkglibdir)/\$(PKG_LIB_FILE) -current_version ${vers:-0} -compatibility_version ${vers:-0}"
+           SHLIB_SUFFIX=".dylib"
+           # Don't use -prebind when building for Mac OS X 10.4 or later only:
+           AS_IF([test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \
diff --git a/dev-tcltk/expect/files/expect-5.45-format-security.patch b/dev-tcltk/expect/files/expect-5.45-format-security.patch
new file mode 100644 (file)
index 0000000..c623264
--- /dev/null
@@ -0,0 +1,18 @@
+ exp_clib.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/exp_clib.c b/exp_clib.c
+index 172c05e..c86dda4 100644
+--- a/exp_clib.c
++++ b/exp_clib.c
+@@ -1476,8 +1476,8 @@ expDiagLogU(str)
+      char *str;
+ {
+   if (exp_is_debugging) {
+-    fprintf(stderr,str);
+-    if (exp_logfile) fprintf(exp_logfile,str);
++    fprintf(stderr,"%s", str);
++    if (exp_logfile) fprintf(exp_logfile,"%s", str);
+   }
+ }
diff --git a/dev-tcltk/expect/files/expect-5.45-gfbsd.patch b/dev-tcltk/expect/files/expect-5.45-gfbsd.patch
new file mode 100644 (file)
index 0000000..5ae9c26
--- /dev/null
@@ -0,0 +1,26 @@
+--- a/tclconfig/tcl.m4
++++ b/tclconfig/tcl.m4
+@@ -1634,20 +1634,15 @@ dnl AC_CHECK_TOOL(AR, ar)
+           SHLIB_LD="${CC} -shared"
+           TCL_SHLIB_LD_EXTRAS="-soname \$[@]"
+           SHLIB_SUFFIX=".so"
+-          LDFLAGS=""
++          LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           AS_IF([test $doRpath = yes], [
+-              CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+-              LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
++              CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
++          LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           AS_IF([test "${TCL_THREADS}" = "1"], [
+               # The -pthread needs to go in the LDFLAGS, not LIBS
+               LIBS=`echo $LIBS | sed s/-pthread//`
+               CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+               LDFLAGS="$LDFLAGS $PTHREAD_LIBS"])
+-          # Version numbers are dot-stripped by system policy.
+-          TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .`
+-          UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+-          SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1'
+-          TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       Darwin-*)
+           CFLAGS_OPTIMIZE="-Os"
diff --git a/dev-tcltk/expect/files/expect-5.45-headers.patch b/dev-tcltk/expect/files/expect-5.45-headers.patch
new file mode 100644 (file)
index 0000000..9833021
--- /dev/null
@@ -0,0 +1,92 @@
+https://sourceforge.net/tracker/?func=detail&aid=3071706&group_id=13179&atid=113179
+--- a/configure.in
++++ b/configure.in
+@@ -133,6 +133,8 @@ AC_CHECK_HEADER(sys/fcntl.h,     AC_DEFINE(HAVE_SYS_FCNTL_H))
+ AC_CHECK_HEADER(sys/ptem.h,      AC_DEFINE(HAVE_SYS_PTEM_H))
+ AC_CHECK_HEADER(sys/strredir.h,  AC_DEFINE(HAVE_STRREDIR_H))
+ AC_CHECK_HEADER(sys/strpty.h,    AC_DEFINE(HAVE_STRPTY_H))
++AC_CHECK_HEADER(pty.h,           AC_DEFINE(HAVE_PTY_H))
++AC_CHECK_HEADER(libutil.h,       AC_DEFINE(HAVE_LIBUTIL_H))
+ AC_MSG_CHECKING([for sys/bsdtypes.h])
+ if test "ISC_${ISC}" = "ISC_1"   ;    then
+--- a/exp_clib.c
++++ b/exp_clib.c
+@@ -15,6 +15,12 @@
+ #endif
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
++#ifdef HAVE_UNISTD_H
++# include <unistd.h>
++#endif
++#ifdef HAVE_SYS_WAIT_H
++#include <sys/wait.h>
++#endif
+ #ifdef TIME_WITH_SYS_TIME
+ # include <sys/time.h>
+--- a/exp_trap.c
++++ b/exp_trap.c
+@@ -13,6 +13,7 @@
+ #include <stdio.h>
+ #include <signal.h>
+ #include <sys/types.h>
++#include <string.h>
+ #ifdef HAVE_SYS_WAIT_H
+ #include <sys/wait.h>
+--- a/pty_termios.c
++++ b/pty_termios.c
+@@ -9,6 +9,14 @@
+ #include <stdio.h>
+ #include <signal.h>
++#include <string.h>
++#ifdef HAVE_PTY_H
++#include <pty.h>
++#endif
++#ifdef HAVE_LIBUTIL_H
++#include <sys/types.h>
++#include <libutil.h>
++#endif
+ #if defined(SIGCLD) && !defined(SIGCHLD)
+ #define SIGCHLD SIGCLD
+@@ -100,6 +100,7 @@
+ #include "exp_tty_in.h"
+ #include "exp_rename.h"
++#include "exp_int.h"
+ #include "exp_pty.h"
+ void expDiagLog();
+--- a/exp_chan.c
++++ b/exp_chan.c
+@@ -34,6 +34,7 @@
+ #include "exp_rename.h"
+ #include "exp_prog.h"
+ #include "exp_command.h"
++#include "exp_event.h"
+ #include "exp_log.h"
+ #include "tcldbg.h" /* Dbg_StdinMode */
+--- a/exp_clib.c
++++ b/exp_clib.c
+@@ -1955,6 +1955,7 @@
+ #include "expect.h"
+ #include "exp_int.h"
++EXTERN void           exp_init_tty _ANSI_ARGS_((void));
+ /* exp_glob.c - expect functions for doing glob
+  *
+--- a/exp_tty.h
++++ b/exp_tty.h
+@@ -17,6 +17,7 @@
+ void exp_tty_raw(int set);
+ void exp_tty_echo(int set);
++int exp_tty_cooked_echo(Tcl_Interp *interp, exp_tty *tty_old, int *was_raw, int *was_echo);
+ void exp_tty_break(Tcl_Interp *interp, int fd);
+ int exp_tty_raw_noecho(Tcl_Interp *interp, exp_tty *tty_old, int *was_raw, int *was_echo);
+ int exp_israw(void);
diff --git a/dev-tcltk/expect/metadata.xml b/dev-tcltk/expect/metadata.xml
new file mode 100644 (file)
index 0000000..67378c1
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <maintainer type="project">
+               <email>tcltk@gentoo.org</email>
+               <name>Gentoo Tcltk Project</name>
+       </maintainer>
+       <upstream>
+               <remote-id type="sourceforge">expect</remote-id>
+       </upstream>
+</pkgmetadata>