From b74b2356bf53af7ceb08008020a1f027b2737e34 Mon Sep 17 00:00:00 2001 From: Mihaela Sendrea Date: Mon, 11 Nov 2013 01:23:53 -0800 Subject: expect: Add recipe Nedeed for gcc-runtime tests. Fixed build on multilib and add patch to remove !/depot/path/expect -f which caused rpm to puke on rfs generation (From OE-Core rev: 8f06d2975ed7d5db3828dc116c0df72d1161e8e5) Signed-off-by: Mihaela Sendrea Signed-off-by: Khem Raj Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- .../expect/expect/0001-configure.in.patch | 108 ++++++++++++++++ .../expect/expect/0002-tcl.m4.patch | 17 +++ .../expect/expect/01-example-shebang.patch | 144 +++++++++++++++++++++ meta/recipes-devtools/expect/expect_5.45.bb | 61 +++++++++ 4 files changed, 330 insertions(+) create mode 100644 meta/recipes-devtools/expect/expect/0001-configure.in.patch create mode 100644 meta/recipes-devtools/expect/expect/0002-tcl.m4.patch create mode 100644 meta/recipes-devtools/expect/expect/01-example-shebang.patch create mode 100644 meta/recipes-devtools/expect/expect_5.45.bb diff --git a/meta/recipes-devtools/expect/expect/0001-configure.in.patch b/meta/recipes-devtools/expect/expect/0001-configure.in.patch new file mode 100644 index 0000000..7595a25 --- /dev/null +++ b/meta/recipes-devtools/expect/expect/0001-configure.in.patch @@ -0,0 +1,108 @@ +Allow cross compiling. + +Signed-off-by: Anders Roxell +Upstream-Status: Pending +--- +diff -uNr a/configure.in b/configure.in +--- a/configure.in 2012-12-14 15:31:32.623180450 +0100 ++++ b/configure.in 2012-12-14 15:53:34.518233519 +0100 +@@ -481,7 +481,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]) +@@ -506,7 +506,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, `cat wnohang`) ++ rm -f wnohang + ) + + # +@@ -574,7 +576,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 +@@ -725,7 +728,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 +@@ -749,7 +754,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) +@@ -771,7 +778,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 + +@@ -794,7 +803,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]) +@@ -816,7 +825,7 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(no) + ) + + # finally check for Cray style ttys +@@ -837,7 +846,7 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(no) + ) + + # +@@ -889,7 +898,8 @@ + 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), + ) + + diff --git a/meta/recipes-devtools/expect/expect/0002-tcl.m4.patch b/meta/recipes-devtools/expect/expect/0002-tcl.m4.patch new file mode 100644 index 0000000..dc4c6ba --- /dev/null +++ b/meta/recipes-devtools/expect/expect/0002-tcl.m4.patch @@ -0,0 +1,17 @@ +Use proper -L path when cross compiling. + +Signed-off-by: Anders Roxell +Upstream-Status: Pending +--- +diff -uNr a/tclconfig/tcl.m4 b/tclconfig/tcl.m4 +--- a/tclconfig/tcl.m4 2012-12-14 09:16:58.789861281 +0100 ++++ b/tclconfig/tcl.m4 2012-12-14 10:55:43.542297010 +0100 +@@ -371,7 +371,7 @@ + # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC + # instead of TCL_BUILD_LIB_SPEC since it will work with both an + # installed and uninstalled version of Tcl. +- if test -f "${TCL_BIN_DIR}/Makefile" ; then ++ if test -f "${TCL_BIN_DIR}/Makefile" || test "$cross_compiling" = yes; then + TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}" + TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}" + TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}" diff --git a/meta/recipes-devtools/expect/expect/01-example-shebang.patch b/meta/recipes-devtools/expect/expect/01-example-shebang.patch new file mode 100644 index 0000000..8597f31 --- /dev/null +++ b/meta/recipes-devtools/expect/expect/01-example-shebang.patch @@ -0,0 +1,144 @@ +Author: Mike Markley +Author: Sergei Golovan +Description: Fixes shebangs in examples (Closes: #152367). + +Backported from Debian + +Upstream-Status: Pending +Index: expect5.45/example/beer.exp +=================================================================== +--- expect5.45.orig/example/beer.exp 2006-01-25 13:51:39.000000000 -0800 ++++ expect5.45/example/beer.exp 2013-11-01 17:35:19.817318341 -0700 +@@ -1,4 +1,9 @@ +-#!/depot/path/expect -f ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec tclsh "$0" ${1+"$@"} ++ ++package require Expect + + # 99 bottles of beer on the wall, Expect-style + # Author: Don Libes +Index: expect5.45/example/expectd.proto +=================================================================== +--- expect5.45.orig/example/expectd.proto 2010-07-02 09:03:31.000000000 -0700 ++++ expect5.45/example/expectd.proto 2013-11-01 17:35:19.821318341 -0700 +@@ -1,4 +1,10 @@ +-#!/depot/tcl/src/expect/e -- ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec tclsh "$0" ${1+"$@"} ++ ++package require Expect ++ + # Description: Simple fragment to begin a telnet daemon + # For more information, see Chapter 17 of "Exploring Expect" + # Author: Don Libes, NIST +Index: expect5.45/example/irsh +=================================================================== +--- expect5.45.orig/example/irsh 2010-07-02 09:03:31.000000000 -0700 ++++ expect5.45/example/irsh 2013-11-01 17:35:19.821318341 -0700 +@@ -1,4 +1,9 @@ +-#!/depot/path/expect -- ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec tclsh "$0" ${1+"$@"} ++ ++package require Expect + + # Do rsh interactively. For example, consider the following command: + # rsh ls -l "|" more +Index: expect5.45/example/passwd.cgi +=================================================================== +--- expect5.45.orig/example/passwd.cgi 2000-01-06 15:22:07.000000000 -0800 ++++ expect5.45/example/passwd.cgi 2013-11-01 17:35:19.821318341 -0700 +@@ -1,4 +1,9 @@ +-#!/depot/path/expect -- ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec tclsh "$0" ${1+"$@"} ++ ++package require Expect + + # This is a CGI script to process requests created by the accompanying + # passwd.html form. This script is pretty basic, although it is +Index: expect5.45/example/passwdprompt +=================================================================== +--- expect5.45.orig/example/passwdprompt 2003-09-05 12:01:59.000000000 -0700 ++++ expect5.45/example/passwdprompt 2013-11-01 17:35:19.821318341 -0700 +@@ -1,4 +1,9 @@ +-#!/depot/path/expect ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec tclsh "$0" ${1+"$@"} ++ ++package require Expect + + # This script prompts for a passwd from stdin while echoing *'s + +Index: expect5.45/example/reprompt +=================================================================== +--- expect5.45.orig/example/reprompt 2000-01-06 15:22:07.000000000 -0800 ++++ expect5.45/example/reprompt 2013-11-01 17:35:19.821318341 -0700 +@@ -1,4 +1,9 @@ +-#!/depot/path/expect -- ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec tclsh "$0" ${1+"$@"} ++ ++package require Expect + + # Name: reprompt + # Description: reprompt every so often until user enters something +Index: expect5.45/example/term_expect +=================================================================== +--- expect5.45.orig/example/term_expect 2005-02-15 10:11:31.000000000 -0800 ++++ expect5.45/example/term_expect 2013-11-01 17:35:19.821318341 -0700 +@@ -1,4 +1,9 @@ +-#!/depot/path/expectk ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec wish "$0" ${1+"$@"} ++ ++package require Expect + + # Name: tkterm - terminal emulator using Expect and Tk text widget, v3.0 + # Author: Don Libes, July '94 +Index: expect5.45/example/vrfy +=================================================================== +--- expect5.45.orig/example/vrfy 2010-07-02 09:03:31.000000000 -0700 ++++ expect5.45/example/vrfy 2013-11-01 17:35:19.821318341 -0700 +@@ -1,4 +1,9 @@ +-#!/depot/path/expect -f ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec tclsh "$0" ${1+"$@"} ++ ++package require Expect + + + # separate address into user and host +Index: expect5.45/example/xrlogin +=================================================================== +--- expect5.45.orig/example/xrlogin 2000-01-06 15:22:08.000000000 -0800 ++++ expect5.45/example/xrlogin 2013-11-01 17:35:19.821318341 -0700 +@@ -1,4 +1,10 @@ +-#!/depot/path/expect -- ++#!/bin/sh ++# -*- tcl -*- ++# The next line is executed by /bin/sh, but not tcl \ ++exec tclsh "$0" ${1+"$@"} ++ ++package require Expect ++ + # xrlogin - rlogin but with current DISPLAY + # + # You can extend this idea to save any arbitrary information across rlogin diff --git a/meta/recipes-devtools/expect/expect_5.45.bb b/meta/recipes-devtools/expect/expect_5.45.bb new file mode 100644 index 0000000..0417ec6 --- /dev/null +++ b/meta/recipes-devtools/expect/expect_5.45.bb @@ -0,0 +1,61 @@ +SUMMARY = "tool for automating interactive applications according to a script" +DESCRIPTION = "Expect is a tool for automating interactive applications according to a script. \ +Following the script, Expect knows what can be expected from a program and what \ +the correct response should be. Expect is also useful for testing these same \ +applications. And by adding Tk, you can also wrap interactive applications in \ +X11 GUIs. An interpreted language provides branching and high-level control \ +structures to direct the dialogue. In addition, the user can take control and \ +interact directly when desired, afterward returning control to the script. \ +" +HOMEPAGE = "http://sourceforge.net/projects/expect/" +LICENSE="PD" +SECTION = "devel" + +LIC_FILES_CHKSUM = "file://license.terms;md5=fbf2de7e9102505b1439db06fc36ce5c" + +DEPENDS += "tcl" +RDEPENDS_${PN} = "tcl" + +inherit autotools + +SRC_URI = "${SOURCEFORGE_MIRROR}/expect/Expect/${PV}/${BPN}${PV}.tar.gz \ + file://0001-configure.in.patch \ + file://0002-tcl.m4.patch \ + file://01-example-shebang.patch \ + " +SRC_URI[md5sum] = "44e1a4f4c877e9ddc5a542dfa7ecc92b" +SRC_URI[sha256sum] = "b28dca90428a3b30e650525cdc16255d76bb6ccd65d448be53e620d95d5cc040" + +S = "${WORKDIR}/${BPN}${PV}" + +do_install_append() { + install -d ${D}${libdir} + install -m 0755 ${D}${libdir}/expect${PV}/libexpect*.so ${D}${libdir}/ + install -m 0755 ${S}/fixline1 ${D}${libdir}/expect${PV}/ + install -m 0755 ${S}/example/* ${D}${libdir}/expect${PV}/ + rm ${D}${libdir}/expect${PV}/libexpect*.so +} + +EXTRA_OECONF += "--includedir=${STAGING_INCDIR} \ + --with-tcl=${STAGING_LIBDIR} \ + --with-tclinclude=${STAGING_INCDIR}/tcl8.6 \ + --enable-shared \ + --enable-threads \ + --disable-rpath \ + " +EXTRA_OEMAKE_install = " 'SCRIPTS=' " + +FILES_${PN}-dbg += "${libdir}/${BPN}${PV}/.debug \ + ${libdir}/.debug \ + " +FILES_${PN}-dev = "${libdir_native}/expect${PV}/libexpect*.so \ + ${STAGING_INCDIR}/expect.h \ + ${STAGING_INCDIR}/expect_tcl.h \ + ${STAGING_INCDIR}/expect_comm.h \ + ${STAGING_INCDIR}/tcldbg.h \ + ${includedir}/*.h \ + " + +FILES_${PN} += "${libdir}/libexpect${PV}.so \ + ${libdir}/expect${PV}/* \ + " -- cgit v1.1