[OE-core] [PATCH V5] expect: Add recipe

Saul Wold sgw at linux.intel.com
Wed Nov 6 04:35:23 UTC 2013


On 11/04/2013 07:41 PM, Khem Raj wrote:
> From: Mihaela Sendrea <mihaela.sendrea at enea.com>
>
> Nedeed for gcc-runtime tests.
>

i am seeing configure fails with this patch

> configure:2350: checking for correct TEA configuration
> configure:2363: result: ok (TEA 3.9)
> configure:2430: configuring expect 5.45
> configure:2508: checking for Tcl configuration
> configure:2528: error: /srv/ssd/sgw/builds/world/tmp/sysroots/genericx86/usr/lib directory doesn't contain tclConfig.sh
>
Sau!



> Fixed build on multilib and add patch to remove
> !/depot/path/expect -f
> which caused rpm to puke on rfs generation
>
> Signed-off-by: Mihaela Sendrea <mihaela.sendrea at enea.com>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>   .../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        |  60 +++++++++
>   4 files changed, 329 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 <anders.roxell at enea.com>
> +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 <anders.roxell at enea.com>
> +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 <mike at markley.org>
> +Author: Sergei Golovan <sgolovan at debian.org>
> +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 <libes at nist.gov>
> +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 <remote> 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..ecc5e75
> --- /dev/null
> +++ b/meta/recipes-devtools/expect/expect_5.45.bb
> @@ -0,0 +1,60 @@
> +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"
> +
> +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} \
> +                 --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}/* \
> +               "
>



More information about the Openembedded-core mailing list