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

Khem Raj raj.khem at gmail.com
Fri Nov 8 05:29:41 UTC 2013


On Thu, Nov 7, 2013 at 9:20 PM, Saul Wold <sgw at linux.intel.com> wrote:
> On 11/06/2013 06:33 PM, Khem Raj wrote:
>>
>> From: Mihaela Sendrea <mihaela.sendrea at enea.com>
>>
>> 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
>>
>
> I did 2 builds locally and this patch worked, but on the Autobuilder I got
> the a failure:
>
> http://autobuilder.yoctoproject.org:8011/builders/nightly-world/builds/347/steps/Building%20Images/logs/stdio
>
> My machine is Ubuntu-12.10, but the AB is Fedora 19, what machines did you
> test with?

different versions of Ubuntu but no other.

>
> Sau!
>
>
>> 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        |  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 <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..b649a42
>> --- /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} \
>> +                 --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