aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/screen
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2009-09-11 19:00:56 -0700
committerKhem Raj <raj.khem@gmail.com>2009-09-11 19:02:59 -0700
commitaa6a11a7168bf804925f78f9003920bce4b3a5e9 (patch)
tree7f3f885b495b17b6edb1f53d180a367a36d6e596 /recipes/screen
parentc0f653bc90814acf4053ec037c7ab3ad022342ff (diff)
downloadopenembedded-aa6a11a7168bf804925f78f9003920bce4b3a5e9.tar.gz
screen-4.0.3: Fix compilation and make default.
* Fix compilation issues. * Remove DEFAULT_PREFERENCE = "-1" * Tested on Thumb/uclibc Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/screen')
-rw-r--r--recipes/screen/screen-4.0.3/configure.patch582
-rw-r--r--recipes/screen/screen-4.0.3/cross-compile.patch331
-rw-r--r--recipes/screen/screen-4.0.3/no-stropts.patch13
-rw-r--r--recipes/screen/screen-4.0.3/no-utempter.patch17
-rw-r--r--recipes/screen/screen-4.0.3/sched.patch20
-rw-r--r--recipes/screen/screen_4.0.3.bb12
6 files changed, 526 insertions, 449 deletions
diff --git a/recipes/screen/screen-4.0.3/configure.patch b/recipes/screen/screen-4.0.3/configure.patch
index 2770a7a481..8789cb73fb 100644
--- a/recipes/screen/screen-4.0.3/configure.patch
+++ b/recipes/screen/screen-4.0.3/configure.patch
@@ -1,336 +1,17 @@
-
-#
-# Patch by Hannes Reich (hannes@skynet.ie) 22-Jul-2005
-# Resolves _some_ of the cross-compilation issues in screen's configure.in
-#
-
---- screen-4.0.1/configure.in~configure
-+++ screen-4.0.1/configure.in
-@@ -37,6 +37,323 @@
- VERSION="$rev.$vers.$pat"
- AC_NOTE(this is screen version $VERSION)
- AC_SUBST(VERSION)
-+
-+AH_TOP([
-+/* Copyright (c) 1993-2000
-+ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
-+ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
-+ * Copyright (c) 1987 Oliver Laumann
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2, or (at your option)
-+ * any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program (see the file COPYING); if not, write to the
-+ * Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-+ *
-+ */
-+
-+
-+/**********************************************************************
-+ *
-+ * User Configuration Section
-+ */
-+
-+/*
-+ * Maximum of simultaneously allowed windows per screen session.
-+ */
-+#ifndef MAXWIN
-+# define MAXWIN 40
-+#endif
-+
-+/*
-+ * Define SOCKDIR to be the directory to contain the named sockets
-+ * screen creates. This should be in a common subdirectory, such as
-+ * /usr/local or /tmp. It makes things a little more secure if you
-+ * choose a directory which is not writable by everyone or where the
-+ * "sticky" bit is on, but this isn't required.
-+ * If SOCKDIR is not defined screen will put the named sockets in
-+ * the user's home directory. Notice that this can cause you problems
-+ * if some user's HOME directories are AFS- or NFS-mounted. Especially
-+ * AFS is unlikely to support named sockets.
-+ *
-+ * Screen will name the subdirectories "S-$USER" (e.g /tmp/S-davison).
-+ */
-+#undef SOCKDIR
-+
-+/*
-+ * Define this if the SOCKDIR is not shared between hosts.
-+ */
-+#define SOCKDIR_IS_LOCAL_TO_HOST
-+
-+/*
-+ * Screen sources two startup files. First a global file with a path
-+ * specified here, second your local $HOME/.screenrc
-+ * Don't define this, if you don't want it.
-+ */
-+#ifndef ETCSCREENRC
-+# define ETCSCREENRC "/usr/local/etc/screenrc"
-+#endif
-+
-+/*
-+ * Screen can look for the environment variable $SYSSCREENRC and -if it
-+ * exists- load the file specified in that variable as global screenrc.
-+ * If you want to enable this feature, define ALLOW_SYSSCREENRC to one (1).
-+ * Otherwise ETCSCREENRC is always loaded.
-+ */
-+#define ALLOW_SYSSCREENRC 1
-+
-+/*
-+ * Screen needs encoding files for the translation of utf8
-+ * into some encodings, e.g. JIS, BIG5.
-+ * Only needed if FONT, ENCODINGS and UTF8 are defined.
-+ */
-+#ifndef SCREENENCODINGS
-+# define SCREENENCODINGS "/usr/local/lib/screen/encodings"
-+#endif
-+/*
-+ * Define CHECKLOGIN to force Screen users to enter their Unix password
-+ * in addition to the screen password.
-+ *
-+ * Define NOSYSLOG if yo do not have logging facilities. Currently
-+ * syslog() will be used to trace ``su'' commands only.
-+ */
-+#define CHECKLOGIN 1
-+#undef NOSYSLOG
-+
-+
-+/*
-+ * define PTYMODE if you do not like the default of 0622, which allows
-+ * public write to your pty.
-+ * define PTYGROUP to some numerical group-id if you do not want the
-+ * tty to be in "your" group.
-+ * Note, screen is unable to change mode or group of the pty if it
-+ * is not installed with sufficient privilege. (e.g. set-uid-root)
-+ * define PTYROFS if the /dev/pty devices are mounted on a read-only
-+ * filesystem so screen should not even attempt to set mode or group
-+ * even if running as root (e.g. on TiVo).
-+ */
-+#undef PTYMODE
-+#undef PTYGROUP
-+#undef PTYROFS
-+
-+/*
-+ * If screen is NOT installed set-uid root, screen can provide tty
-+ * security by exclusively locking the ptys. While this keeps other
-+ * users from opening your ptys, it also keeps your own subprocesses
-+ * from being able to open /dev/tty. Define LOCKPTY to add this
-+ * exclusive locking.
-+ */
-+#undef LOCKPTY
-+
-+/*
-+ * If you'd rather see the status line on the first line of your
-+ * terminal rather than the last, define TOPSTAT.
-+ */
-+#undef TOPSTAT
-+
-+/*
-+ * define DETACH can detach a session. An absolute 'must'.
-+ */
-+#define DETACH
-+
-+/*
-+ * here come the erlangen extensions to screen:
-+ * define LOCK if you want to use a lock program for a screenlock.
-+ * define PASSWORD for secure reattach of your screen.
-+ * define COPY_PASTE to use the famous hacker's treasure zoo.
-+ * define POW_DETACH to have a detach_and_logout key (requires DETACH).
-+ * define REMOTE_DETACH (-d option) to move screen between terminals.
-+ * define AUTO_NUKE to enable Tim MacKenzies clear screen nuking
-+ * define PSEUDOS to allow window input/output filtering
-+ * define MULTI to allow multiple attaches.
-+ * define MULTIUSER to allow other users attach to your session
-+ * (if they are in the acl, of course)
-+ * define MAPKEYS to include input keyboard translation.
-+ * define FONT to support ISO2022/alternet charset support
-+ * define COLOR to include ansi color support. This may expose
-+ * a bug in x11r6-color-xterm.
-+ * define DW_CHARS to include support for double-width character
-+ * sets.
-+ * define ENCODINGS to include support for encodings like euc or big5.
-+ * Needs FONT to work.
-+ * define UTF8 if you want support for UTF-8 encoding.
-+ * Needs FONT and ENCODINGS to work.
-+ * define COLORS16 if you want 16 colors.
-+ * Needs COLOR to work.
-+ * define BUILTIN_TELNET to add telnet support to screen.
-+ * Syntax: screen //telnet host [port]
-+ * define RXVT_OSC if you want support for rxvts special
-+ * change fgcolor/bgcolor/bgpicture sequences
-+ */
-+#undef SIMPLESCREEN
-+#ifndef SIMPLESCREEN
-+# define LOCK
-+# define PASSWORD
-+# define COPY_PASTE
-+# define REMOTE_DETACH
-+# define POW_DETACH
-+# define AUTO_NUKE
-+# define PSEUDOS
-+# define MULTI
-+# define MULTIUSER
-+# define MAPKEYS
-+# define COLOR
-+# define FONT
-+# define DW_CHARS
-+# define ENCODINGS
-+# define UTF8
-+# define COLORS16
-+# define ZMODEM
-+# define BLANKER_PRG
-+#endif /* SIMPLESCREEN */
-+
-+#undef BUILTIN_TELNET
-+#undef RXVT_OSC
-+#undef COLORS256
-+
-+
-+/*
-+ * If you have a braille display you should define HAVE_BRAILLE.
-+ * The code inside #ifdef HAVE_BRAILLE was contributed by Hadi Bargi
-+ * Rangin (bargi@dots.physics.orst.edu).
-+ * WARNING: this is more or less unsupported code, it may be full of
-+ * bugs leading to security holes, enable at your own risk!
-+ */
-+#undef HAVE_BRAILLE
-+
-+
-+/*
-+ * As error messages are mostly meaningless to the user, we
-+ * try to throw out phrases that are somewhat more familiar
-+ * to ...well, at least familiar to us NetHack players.
-+ */
-+#ifndef NONETHACK
-+# define NETHACK
-+#endif /* NONETHACK */
-+
-+/*
-+ * If screen is installed with permissions to update /etc/utmp (such
-+ * as if it is installed set-uid root), define UTMPOK.
-+ */
-+#define UTMPOK
-+
-+/* Set LOGINDEFAULT to one (1)
-+ * if you want entries added to /etc/utmp by default, else set it to
-+ * zero (0).
-+ * LOGINDEFAULT will be one (1) whenever LOGOUTOK is undefined!
-+ */
-+#define LOGINDEFAULT 1
-+
-+/* Set LOGOUTOK to one (1)
-+ * if you want the user to be able to log her/his windows out.
-+ * (Meaning: They are there, but not visible in /etc/utmp).
-+ * Disabling this feature only makes sense if you have a secure /etc/utmp
-+ * database.
-+ * Negative examples: suns usually have a world writable utmp file,
-+ * xterm will run perfectly without s-bit.
-+ *
-+ * If LOGOUTOK is undefined and UTMPOK is defined, all windows are
-+ * initially and permanently logged in.
-+ *
-+ * Set CAREFULUTMP to one (1) if you want that users have at least one
-+ * window per screen session logged in.
-+ */
-+#define LOGOUTOK 1
-+#undef CAREFULUTMP
-+
-+
-+/*
-+ * If UTMPOK is defined and your system (incorrectly) counts logins by
-+ * counting non-null entries in /etc/utmp (instead of counting non-null
-+ * entries with no hostname that are not on a pseudo tty), define USRLIMIT
-+ * to have screen put an upper-limit on the number of entries to write
-+ * into /etc/utmp. This helps to keep you from exceeding a limited-user
-+ * license.
-+ */
-+#undef USRLIMIT
-+
-+/*
-+ * both must be defined if you want to favor tcsendbreak over
-+ * other calls to generate a break condition on serial lines.
-+ * (Do not bother, if you are not using plain tty windows.)
-+ */
-+#define POSIX_HAS_A_GOOD_TCSENDBREAK
-+#define SUNOS4_AND_WE_TRUST_TCSENDBREAK
-+
-+/*
-+ * to lower the interrupt load on the host machine, you may want to
-+ * adjust the VMIN and VTIME settings used for plain tty windows.
-+ * See the termio(4) manual page (Non-Canonical Mode Input Processing)
-+ * for details.
-+ * if undefined, VMIN=1, VTIME=0 is used as a default - this gives you
-+ * best user responsiveness, but highest interrupt frequency.
-+ * (Do not bother, if you are not using plain tty windows.)
-+ */
-+#define TTYVMIN 100
-+#define TTYVTIME 2
-+
-+/*
-+ * looks like the above values are ignored by setting FNDELAY.
-+ * This is default for all pty/ttys, you may disable it for
-+ * ttys here. After playing with it for a while, one may find out
-+ * that this feature may cause screen to lock up.
-+ */
-+#ifdef bsdi
-+# define TTY_DISABLE_FNBLOCK /* select barfs without it ... */
-+#endif
-+
-+
-+/*
-+ * Some terminals, e.g. Wyse 120, use a bitfield to select attributes.
-+ * This doesn't work with the standard so/ul/m? terminal entries,
-+ * because they will cancel each other out.
-+ * On TERMINFO machines, "sa" (sgr) may work. If you want screen
-+ * to switch attributes only with sgr, define USE_SGR.
-+ * This is *not* recomended, do this only if you must.
-+ */
-+#undef USE_SGR
-+
-+
-+/*
-+ * Define USE_LOCALE if you want screen to use the locale names
-+ * for the name of the month and day of the week.
-+ */
-+#define USE_LOCALE
-+
-+/*
-+ * Define USE_PAM if your system supports PAM (Pluggable Authentication
-+ * Modules) and you want screen to use it instead of calling crypt().
-+ * (You may also need to add -lpam to LIBS in the Makefile.)
-+ */
-+#undef USE_PAM
-+
-+/*
-+ * Define CHECK_SCREEN_W if you want screen to set TERM to screen-w
-+ * if the terminal width is greater than 131 columns. No longer needed
-+ * on modern systems which use $COLUMNS or the tty settings instead.
-+ */
-+#undef CHECK_SCREEN_W
-+
-+/**********************************************************************
-+ *
-+ * End of User Configuration Section
-+ *
-+ * Rest of this file is modified by 'configure'
-+ * Change at your own risk!
-+ *
-+ */
-+])
-+# end of AH_TOP
-+
- AC_PREFIX_PROGRAM(screen)
- AC_PREFIX_PROGRAM(gzip)
-
-@@ -46,6 +363,7 @@
+Index: screen-4.0.3/configure.in
+===================================================================
+--- screen-4.0.3.orig/configure.in 2009-09-11 16:59:24.085222816 -0700
++++ screen-4.0.3/configure.in 2009-09-11 18:42:08.338231443 -0700
+@@ -12,7 +12,7 @@
+ dnl
+ dnl Define some useful macros
+ dnl
+-AC_DEFUN(AC_PROGRAM_SOURCE,
++AC_DEFUN([AC_PROGRAM_SOURCE],
+ [AC_REQUIRE([AC_PROG_CPP])AC_PROVIDE([$0])cat > conftest.c <<EOF
+ #include "confdefs.h"
+ [$1]
+@@ -362,6 +362,7 @@
AC_PROG_GCC_TRADITIONAL
AC_ISC_POSIX
@@ -338,7 +19,7 @@
AC_TRY_RUN(main(){exit(0);},,[
if test $CC != cc ; then
AC_NOTE(Your $CC failed - restarting with CC=cc)
-@@ -54,22 +372,17 @@
+@@ -370,22 +371,17 @@
export CC
exec $0 $configure_args
fi
@@ -365,7 +46,7 @@
AC_PROG_AWK
-@@ -103,6 +416,7 @@
+@@ -419,6 +415,7 @@
dnl
dnl **** special unix variants ****
dnl
@@ -373,7 +54,7 @@
if test -n "$ISC"; then
AC_DEFINE(ISC) LIBS="$LIBS -linet"
fi
-@@ -114,11 +428,13 @@
+@@ -430,11 +427,13 @@
dnl fi
dnl fi
@@ -387,7 +68,7 @@
if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then
oldlibs="$LIBS"
test -f /bin/mx || LIBS="$LIBS -lmld" # for nlist. But not on alpha.
-@@ -132,6 +448,8 @@
+@@ -448,6 +447,8 @@
AC_CHECKING(wait3)
AC_TRY_LINK(,[wait3();], ,
AC_CHECKING(wait2)
@@ -396,7 +77,7 @@
AC_TRY_LINK(,[wait2();],
dnl John Rouillard (rouilj@sni-usa.com):
dnl need -I/usr/include/bsd in RISCOS otherwise sockets are broken, no
-@@ -154,9 +472,11 @@
+@@ -470,9 +471,11 @@
oldlibs="$LIBS"
LIBS="$LIBS -lpyr"
AC_CHECKING(Pyramid OSX)
@@ -408,7 +89,7 @@
dnl ghazi@caip.rutgers.edu (Kaveh R. Ghazi):
dnl BBN butterfly is not POSIX, but a MACH BSD system.
dnl Do not define POSIX and TERMIO.
-@@ -183,6 +503,7 @@
+@@ -499,6 +502,7 @@
fi
AC_CHECKING(for System V)
@@ -416,40 +97,37 @@
AC_TRY_COMPILE(
[#include <sys/types.h>
#include <signal.h>
-@@ -198,6 +519,11 @@
+@@ -514,6 +518,8 @@
oldlibs="$LIBS"
LIBS="$LIBS -lelf"
AC_CHECKING(SVR4)
-+AH_TEMPLATE([SVR4],[])
-+AH_TEMPLATE([BUGGYGETLOGIN],
-+[If ttyslot() breaks getlogin() by returning indexes to utmp entries
-+ of type DEAD_PROCESS, then our getlogin() replacement should be
-+ selected by defining BUGGYGETLOGIN.])
++AH_TEMPLATE([SVR4])
++AH_TEMPLATE([BUGGYGETLOGIN])
AC_TRY_LINK([#include <utmpx.h>
],,
[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
-@@ -235,6 +561,9 @@
+@@ -551,6 +557,9 @@
dnl
AC_CHECKING(BSD job jontrol)
-+AH_TEMPLATE([BSDJOBS],
++AH_TEMPLATE([BSDJOBS],
+[Define BSDJOBS if you have BSD-style job control (both process
+ groups and a tty that deals correctly with them)])
AC_TRY_LINK(
[#include <sys/types.h>
#include <sys/ioctl.h>
-@@ -255,6 +584,10 @@
+@@ -571,6 +580,10 @@
dnl **** setreuid(), seteuid() ****
dnl
AC_CHECKING(setreuid)
-+AH_TEMPLATE([HAVE_SETREUID],
++AH_TEMPLATE([HAVE_SETREUID],
+[If your system has the calls setreuid() and setregid(),
+ define HAVE_SETREUID. Otherwise screen will use a forked process to
+ safely create output files without retaining any special privileges.])
AC_TRY_LINK(,[
#ifdef __hpux
setresuid(0, 0, 0);
-@@ -269,6 +602,9 @@
+@@ -585,6 +598,9 @@
dnl Solaris seteuid doesn't change the saved uid, bad for
dnl multiuser screen sessions
AC_CHECKING(seteuid)
@@ -459,62 +137,59 @@
AC_TRY_LINK(,[
#if defined(linux) || defined(NeXT) || defined(_AUX_SOURCE) || defined(AUX) || defined(ultrix) || (defined(sun) && defined(SVR4)) || defined(ISC) || defined(sony_news)
seteuid_is_broken(0);
-@@ -292,7 +628,8 @@
- dnl **** FIFO tests ****
+@@ -609,6 +625,8 @@
dnl
--AC_CHECKING(fifos)
+ AC_CHECKING(fifos)
+AC_CACHE_CHECK([usable fifos],
-+ [screen_cv_sys_fifo_usable],
++ [screen_cv_sys_fifo_usable],
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/stat.h>
-@@ -357,12 +694,14 @@
+@@ -673,12 +691,15 @@
exit(1);
exit(0);
}
-], AC_NOTE(- your fifos are usable) fifo=1,
-AC_NOTE(- your fifos are not usable))
--rm -f /tmp/conftest*
+], screen_cv_sys_fifo_usable=yes, screen_cv_sys_fifo_usable=no))
+ rm -f /tmp/conftest*
-if test -n "$fifo"; then
-AC_CHECKING(for broken fifo implementation)
+if test X"$screen_cv_sys_fifo_usable" = Xyes; then
-+AH_TEMPLATE([BROKEN_PIPE],
++AH_TEMPLATE([BROKEN_PIPE],
+[Define this if your system exits select() immediatly if a pipe is
+ opened read-only and no writer has opened it.])
+AC_CACHE_CHECK([broken fifo implementation],
-+ [screen_cv_sys_fifo_broken_impl],
++ [screen_cv_sys_fifo_broken_impl],
AC_TRY_RUN([
#include <sys/types.h>
#include <fcntl.h>
-@@ -407,9 +746,11 @@
+@@ -723,8 +744,11 @@
exit(1);
exit(0);
}
-], AC_NOTE(- your implementation is ok),
-AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1)
--rm -f /tmp/conftest*
-+], screen_cv_sys_fifo_broken_impl=no,
++], screen_cv_sys_fifo_broken_impl=no,
+screen_cv_sys_fifo_broken_impl=yes))
+if test X"$screen_cv_sys_fifo_broken_impl" = Xyes; then
-+ AC_DEFINE(BROKEN_PIPE)
++ AC_DEFINE(BROKEN_PIPE)
+fi
+ rm -f /tmp/conftest*
fi
- dnl
-@@ -418,7 +759,8 @@
- dnl may need LIBS="$LIBS -lsocket" here
+@@ -735,6 +759,8 @@
dnl
--AC_CHECKING(sockets)
+ AC_CHECKING(sockets)
+AC_CACHE_CHECK([sockets are usable],
-+ [screen_cv_sys_sockets_usable],
++ [screen_cv_sys_sockets_usable],
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/socket.h>
-@@ -469,12 +811,16 @@
+@@ -785,12 +811,16 @@
exit(1);
exit(0);
}
@@ -527,15 +202,15 @@
-if test -n "$sock"; then
+if test X"$screen_cv_sys_sockets_usable" = Xyes; then
AC_CHECKING(socket implementation)
-+AH_TEMPLATE([SOCK_NOT_IN_FS],
++AH_TEMPLATE([SOCK_NOT_IN_FS],
+[Define this if the unix-domain socket implementation doesn't
+ create a socket in the filesystem.])
+AC_CACHE_CHECK([if sockets are not stored in the filesystem],
-+ [screen_cv_sys_sockets_nofs],
++ [screen_cv_sys_sockets_nofs],
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/stat.h>
-@@ -500,22 +846,25 @@
+@@ -816,22 +846,25 @@
close(s);
exit(0);
}
@@ -569,7 +244,7 @@
AC_NOTE(- as your fifos are broken lets use the sockets.)
else
AC_NOTE(- both sockets and fifos usable. let's take fifos.)
-@@ -525,7 +874,7 @@
+@@ -841,7 +874,7 @@
AC_NOTE(- using named pipes, of course)
AC_DEFINE(NAMEDPIPE)
fi
@@ -578,20 +253,20 @@
AC_NOTE(- using unix-domain sockets, of course)
else
AC_MSG_ERROR(you have neither usable sockets nor usable pipes -> no screen)
-@@ -535,7 +884,11 @@
+@@ -851,7 +884,11 @@
dnl **** check the select implementation ****
dnl
-AC_CHECKING(select return value)
-+AH_TEMPLATE([SELECT_BROKEN],
++AH_TEMPLATE([SELECT_BROKEN],
+[If the select return value doesn't treat a descriptor that is
+ usable for reading and writing as two hits, define SELECT_BROKEN.])
+AC_CACHE_CHECK([for broken select return value],
-+ [screen_cv_sys_select_broken_retval],
++ [screen_cv_sys_select_broken_retval],
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/stat.h>
-@@ -634,19 +987,26 @@
+@@ -950,17 +987,26 @@
exit(1);
exit(0);
}
@@ -606,7 +281,7 @@
dnl
dnl **** termcap or terminfo ****
dnl
-+AH_TEMPLATE([TERMINFO],
++AH_TEMPLATE([TERMINFO],
+[Define TERMINFO if your machine emulates the termcap routines
+ with the terminfo database.
+ Thus the .screenrc file is parsed for
@@ -615,33 +290,31 @@
AC_CHECKING(for tgetent)
AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
olibs="$LIBS"
--if test -f /usr/lib/libncursesw.so ; then
-- LIBS="-lncursesw $olibs"
--fi
- AC_CHECKING(libncursesw)
-+AC_CHECK_LIB(ncursesw,tgetent)
- AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
- LIBS="-lcurses $olibs"
+-LIBS="-lcurses $olibs"
AC_CHECKING(libcurses)
-@@ -668,24 +1028,39 @@
++AC_CHECK_LIB(ncursesw,tgetent)
+ AC_TRY_LINK(,[
+ #ifdef __hpux
+ __sorry_hpux_libcurses_is_totally_broken_in_10_10();
+@@ -979,24 +1025,39 @@
AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
- AC_MSG_ERROR(!!! no tgetent - no screen)))))))
+ AC_MSG_ERROR(!!! no tgetent - no screen))))))
-AC_TRY_RUN([
+AC_CACHE_CHECK([using terminfo database],[screen_cv_sys_terminfo_used],
-+ AC_TRY_RUN([
++ AC_TRY_RUN([
main()
{
exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
-}], AC_NOTE(- you use the termcap database),
-AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO))
+}
-+ ], screen_cv_sys_terminfo_used=no,
-+ screen_cv_sys_terminfo_used=yes)
++ ], screen_cv_sys_terminfo_used=no,
++ screen_cv_sys_terminfo_used=yes)
+)
+
+if test X"$screen_cv_sys_terminfo_used" = Xyes; then
-+ AC_DEFINE(TERMINFO)
++ AC_DEFINE(TERMINFO)
+fi
+
AC_CHECKING(ospeed)
@@ -651,7 +324,7 @@
dnl
dnl **** PTY specific things ****
dnl
-+AH_TEMPLATE([HAVE_DEV_PTC],
++AH_TEMPLATE([HAVE_DEV_PTC],
+[define HAVE_DEV_PTC if you have a /dev/ptc character special
+ device.])
AC_CHECKING(for /dev/ptc)
@@ -666,50 +339,70 @@
sysvr4ptys=
if test -c /dev/ptmx ; then
AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
-@@ -701,6 +1076,13 @@
+@@ -1012,6 +1073,13 @@
fi
AC_CHECKING(for ptyranges)
+AH_TEMPLATE([PTYRANGE0],
+[define PTYRANGE0 and or PTYRANGE1 if you want to adapt screen
-+ to unusual environments. E.g. For SunOs the defaults are "qpr" and
-+ "0123456789abcdef". For SunOs 4.1.2
-+ #define PTYRANGE0 "pqrstuvwxyzPQRST"
++ to unusual environments. E.g. For SunOs the defaults are "qpr" and
++ "0123456789abcdef". For SunOs 4.1.2
++ #define PTYRANGE0 "pqrstuvwxyzPQRST"
+ is recommended by Dan Jacobson.])
+AH_TEMPLATE([PTYRANGE1],[])
if test -d /dev/ptym ; then
pdir='/dev/ptym'
else
-@@ -817,6 +1199,9 @@
+@@ -1117,7 +1185,7 @@
+ AC_NOTE(- ptys are world accessable)
+ fi
+ else
+- AC_NOTE(- can't determine - assume ptys are world accessable)
++ AC_NOTE(- cannot determine - assume ptys are world accessable)
+ fi
+ ]
+ )
+@@ -1128,6 +1196,7 @@
dnl **** utmp handling ****
dnl
AC_CHECKING(getutent)
-+AH_TEMPLATE([GETUTENT],
-+[If your system has getutent(), pututline(), etc. to write to the
-+ utmp file, define GETUTENT.])
++AH_TEMPLATE([GETUTENT], [If your system has setutent() and getutent() define GETUTENT])
AC_TRY_LINK([
#include <time.h> /* to get time_t on SCO */
#include <sys/types.h>
-@@ -850,6 +1235,7 @@
- [int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE(GETUTENT), LIBS="$olibs")
- )
+@@ -1141,7 +1210,8 @@
+ #define pututline _pututline
+ #endif
+ ],
+-[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE(GETUTENT),
++[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();],
++[AC_MSG_RESULT(yes); AC_DEFINE(GETUTENT)],[AC_MSG_RESULT(no)])
+ olibs="$LIBS"
+ LIBS="$LIBS -lgen"
+ AC_CHECKING(getutent with -lgen)
+@@ -1158,9 +1228,11 @@
+ #define pututline _pututline
+ #endif
+ ],
+-[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE(GETUTENT), LIBS="$olibs")
+-)
++[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();],
++[AC_MSG_RESULT(yes); AC_DEFINE(GETUTENT)], [AC_MSG_RESULT(no)])
++LIBS="$olibs"
AC_CHECKING(ut_host)
-+AH_TEMPLATE([UTHOST],[Define UTHOST if the utmp file has a host field.])
++AH_TEMPLATE([UTHOST])
AC_TRY_COMPILE([
#include <time.h>
#include <sys/types.h>
-@@ -860,8 +1246,9 @@
+@@ -1171,6 +1243,7 @@
#include <utmp.h>
#endif
],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE(UTHOST))
-+AH_TEMPLATE([HAVE_UTEMPTER],[Define if you have the utempter utmp helper program])
++AH_TEMPLATE([HAVE_UTEMPTER])
AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no)
--if test "$have_utempter" = yes; then
-+if test X"$have_utempter" = Xyes; then
+ if test "$have_utempter" = yes; then
AC_DEFINE(HAVE_UTEMPTER)
- LIBS="$LIBS -lutempter"
- fi
-@@ -869,20 +1256,39 @@
+@@ -1180,20 +1253,39 @@
dnl
dnl **** loadav ****
dnl
@@ -754,7 +447,7 @@
)
if test -z "$load" ; then
-@@ -1024,6 +1430,11 @@
+@@ -1335,6 +1427,11 @@
dnl
dnl **** signal handling ****
dnl
@@ -766,15 +459,15 @@
if test -n "$posix" ; then
dnl POSIX has reliable signals with void return type.
-@@ -1041,6 +1452,7 @@
- #endif
- extern void (*signal ()) ();], [int i;], AC_DEFINE(SIGVOID))
- AC_CHECKING(sigset)
+@@ -1344,6 +1441,7 @@
+ else
+
+ AC_CHECKING(return type of signal handlers)
+AH_TEMPLATE([USESIGSET], [Define USESIGSET if you have sigset for BSD 4.1 reliable signals.])
- AC_TRY_LINK([
- #include <sys/types.h>
+ AC_TRY_COMPILE(
+ [#include <sys/types.h>
#include <signal.h>
-@@ -1052,6 +1464,9 @@
+@@ -1363,6 +1461,9 @@
#endif
], AC_DEFINE(USESIGSET))
AC_CHECKING(signal implementation)
@@ -784,7 +477,7 @@
AC_TRY_RUN([
#include <sys/types.h>
#include <signal.h>
-@@ -1094,13 +1509,14 @@
+@@ -1405,13 +1506,14 @@
dnl
AC_CHECKING(for crypt and sec libraries)
@@ -803,11 +496,11 @@
oldlibs="$LIBS"
LIBS="$LIBS -lsun"
AC_CHECKING(IRIX sun library)
-@@ -1123,6 +1539,13 @@
+@@ -1434,6 +1536,13 @@
dnl **** misc things ****
dnl
AC_CHECKING(wait union)
-+AH_TEMPLATE([BSDWAIT],
++AH_TEMPLATE([BSDWAIT],
+[Define BSDWAIT if your system defines a 'union wait' in <sys/wait.h>
+
+ Only allow BSDWAIT i.e. wait3 on nonposix systems, since
@@ -817,7 +510,7 @@
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/wait.h>
],[
-@@ -1133,6 +1556,12 @@
+@@ -1444,6 +1553,13 @@
#endif
],AC_DEFINE(BSDWAIT))
@@ -827,10 +520,11 @@
+ POSIX systems should define this anyway, even though they use
+ struct termios.])
+
++
if test -z "$butterfly"; then
AC_CHECKING(for termio or termios)
AC_TRY_CPP([#include <termio.h>], AC_DEFINE(TERMIO),
-@@ -1142,17 +1571,35 @@
+@@ -1453,17 +1569,35 @@
)
fi
@@ -838,7 +532,7 @@
+
dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE(SHADOWPW))
AC_CHECKING(getspnam)
-+AH_TEMPLATE([SHADOWPW],
++AH_TEMPLATE([SHADOWPW],
+[If the passwords are stored in a shadow file and you want the
+ builtin lock to work properly, define SHADOWPW.])
AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE(SHADOWPW))
@@ -850,7 +544,7 @@
AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
AC_CHECKING(fdwalk)
-+AH_TEMPLATE([HAVE_FDWALK],
++AH_TEMPLATE([HAVE_FDWALK],
+[Newer versions of Solaris include fdwalk, which can greatly improve
+ the startup time of screen; otherwise screen spends a lot of time
+ closing file descriptors.])
@@ -863,11 +557,11 @@
+ undefined, screen uses its own (probably slower) version of bcopy().])
+
+AC_CACHE_CHECK([if bcopy handles overlap],
-+ [screen_cv_sys_bcopy_overlap],
++ [screen_cv_sys_bcopy_overlap],
AC_TRY_RUN([
main() {
char buf[10];
-@@ -1165,8 +1612,21 @@
+@@ -1476,7 +1610,21 @@
if (strncmp(buf, "cdedef", 6))
exit(1);
exit(0); /* libc version works properly. */
@@ -877,20 +571,20 @@
+if test X"$screen_cv_sys_bcopy_overlap" = Xyes; then
+ AC_DEFINE(USEBCOPY)
+fi
-
-+AH_TEMPLATE([USEMEMMOVE],
-+[SYSV machines may have a working memcpy() -- Oh, this is
++
++AH_TEMPLATE([USEMEMMOVE],
++[SYSV machines may have a working memcpy() -- Oh, this is
+ quite unlikely. Tell me if you see one.
+ "But then, memmove() should work, if at all available" he thought...
+ Boing, never say "works everywhere" unless you checked SCO UNIX.
+ Their memove fails the test in the configure script. Sigh. (Juergen)
+])
+AC_CACHE_CHECK([if memmove handles overlap],
-+ [screen_cv_sys_memmove_overlap],
++ [screen_cv_sys_memmove_overlap],
+
AC_TRY_RUN([
#define bcopy(s,d,l) memmove(d,s,l)
- main() {
-@@ -1180,9 +1640,15 @@
+@@ -1491,9 +1639,15 @@
if (strncmp(buf, "cdedef", 6))
exit(1);
exit(0); /* libc version works properly. */
@@ -904,11 +598,11 @@
+AH_TEMPLATE([USEMEMCPY],[])
+AC_CACHE_CHECK([if memcpy handles overlap],
-+ [screen_cv_sys_memcpy_overlap],
++ [screen_cv_sys_memcpy_overlap],
AC_TRY_RUN([
#define bcopy(s,d,l) memcpy(d,s,l)
main() {
-@@ -1196,9 +1662,19 @@
+@@ -1507,9 +1661,19 @@
if (strncmp(buf, "cdedef", 6))
exit(1);
exit(0); /* libc version works properly. */
@@ -920,24 +614,24 @@
+fi
AC_MSG_CHECKING(long file names)
-+AH_TEMPLATE([NAME_MAX],
-+[If you are on a SYS V machine that restricts filename length to 14
++AH_TEMPLATE([NAME_MAX],
++[If you are on a SYS V machine that restricts filename length to 14
+ characters, you may need to enforce that by setting NAME_MAX to 14])
-+dnl TODO(Hannes) shipped config.h.in has
-+dnl #undef NAME_MAX /* KEEP_UNDEF_HERE override system value */
++dnl TODO(Hannes) shipped config.h.in has
++dnl #undef NAME_MAX /* KEEP_UNDEF_HERE override system value */
+dnl ahead of this
(echo 1 > /tmp/conftest9012345) 2>/dev/null
(echo 2 > /tmp/conftest9012346) 2>/dev/null
val=`cat /tmp/conftest9012345 2>/dev/null`
-@@ -1211,17 +1687,28 @@
+@@ -1522,17 +1686,28 @@
rm -f /tmp/conftest*
AC_MSG_CHECKING(for vsprintf)
-+AH_TEMPLATE([USEVARARGS],
++AH_TEMPLATE([USEVARARGS],
+[If your system has vsprintf() and requires the use of the macros in
+ "varargs.h" to use functions with variable arguments,
+ define USEVARARGS.])
- AC_TRY_LINK([#include <stdarg.h>],[va_list valist; vsprintf(0,0,valist);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
+ AC_TRY_LINK(,[vsprintf(0,0,0);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
AC_HEADER_DIRENT
@@ -946,7 +640,7 @@
AC_TRY_LINK(,[setenv((char *)0,(char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes);AC_DEFINE(USESETENV),
AC_MSG_RESULT(no)
AC_MSG_CHECKING(for putenv)
-+AH_TEMPLATE([NEEDPUTENV],
++AH_TEMPLATE([NEEDPUTENV],
+[If your system does not come with a setenv()/putenv()/getenv()
+ functions, you may bring in our own code by defining NEEDPUTENV.])
AC_TRY_LINK(,[putenv((char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes) , AC_MSG_RESULT(no);AC_DEFINE(NEEDPUTENV)
@@ -958,7 +652,7 @@
AC_TRY_LINK([
#include <langinfo.h>
],[nl_langinfo(CODESET);], AC_MSG_RESULT(yes);AC_DEFINE(HAVE_NL_LANGINFO), AC_MSG_RESULT(no))
-@@ -1271,7 +1758,8 @@
+@@ -1582,7 +1757,8 @@
dnl Ptx bug workaround -- insert -lc after -ltermcap
test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq"
diff --git a/recipes/screen/screen-4.0.3/cross-compile.patch b/recipes/screen/screen-4.0.3/cross-compile.patch
new file mode 100644
index 0000000000..90b321f405
--- /dev/null
+++ b/recipes/screen/screen-4.0.3/cross-compile.patch
@@ -0,0 +1,331 @@
+
+Patch by Hannes Reich (hannes@skynet.ie) 22-Jul-2005
+Resolves _some_ of the cross-compilation issues in screen's configure.in
+
+Index: screen-4.0.3/configure.in
+===================================================================
+--- screen-4.0.3.orig/configure.in 2003-06-03 04:58:24.000000000 -0700
++++ screen-4.0.3/configure.in 2009-09-11 16:15:04.533739171 -0700
+@@ -40,6 +40,322 @@
+ AC_PREFIX_PROGRAM(screen)
+ AC_PREFIX_PROGRAM(gzip)
+
++AH_TOP([
++/* Copyright (c) 1993-2000
++ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
++ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
++ * Copyright (c) 1987 Oliver Laumann
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program (see the file COPYING); if not, write to the
++ * Free Software Foundation, Inc.,
++ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
++ *
++ */
++
++
++/**********************************************************************
++ *
++ * User Configuration Section
++ */
++
++/*
++ * Maximum of simultaneously allowed windows per screen session.
++ */
++#ifndef MAXWIN
++# define MAXWIN 40
++#endif
++
++/*
++ * Define SOCKDIR to be the directory to contain the named sockets
++ * screen creates. This should be in a common subdirectory, such as
++ * /usr/local or /tmp. It makes things a little more secure if you
++ * choose a directory which is not writable by everyone or where the
++ * "sticky" bit is on, but this isn't required.
++ * If SOCKDIR is not defined screen will put the named sockets in
++ * the user's home directory. Notice that this can cause you problems
++ * if some user's HOME directories are AFS- or NFS-mounted. Especially
++ * AFS is unlikely to support named sockets.
++ *
++ * Screen will name the subdirectories "S-$USER" (e.g /tmp/S-davison).
++ */
++#undef SOCKDIR
++
++/*
++ * Define this if the SOCKDIR is not shared between hosts.
++ */
++#define SOCKDIR_IS_LOCAL_TO_HOST
++
++/*
++ * Screen sources two startup files. First a global file with a path
++ * specified here, second your local $HOME/.screenrc
++ * Don't define this, if you don't want it.
++ */
++#ifndef ETCSCREENRC
++# define ETCSCREENRC "/usr/local/etc/screenrc"
++#endif
++
++/*
++ * Screen can look for the environment variable $SYSSCREENRC and -if it
++ * exists- load the file specified in that variable as global screenrc.
++ * If you want to enable this feature, define ALLOW_SYSSCREENRC to one (1).
++ * Otherwise ETCSCREENRC is always loaded.
++ */
++#define ALLOW_SYSSCREENRC 1
++
++/*
++ * Screen needs encoding files for the translation of utf8
++ * into some encodings, e.g. JIS, BIG5.
++ * Only needed if FONT, ENCODINGS and UTF8 are defined.
++ */
++#ifndef SCREENENCODINGS
++# define SCREENENCODINGS "/usr/local/lib/screen/encodings"
++#endif
++/*
++ * Define CHECKLOGIN to force Screen users to enter their Unix password
++ * in addition to the screen password.
++ *
++ * Define NOSYSLOG if yo do not have logging facilities. Currently
++ * syslog() will be used to trace ``su'' commands only.
++ */
++#define CHECKLOGIN 1
++#undef NOSYSLOG
++
++
++/*
++ * define PTYMODE if you do not like the default of 0622, which allows
++ * public write to your pty.
++ * define PTYGROUP to some numerical group-id if you do not want the
++ * tty to be in "your" group.
++ * Note, screen is unable to change mode or group of the pty if it
++ * is not installed with sufficient privilege. (e.g. set-uid-root)
++ * define PTYROFS if the /dev/pty devices are mounted on a read-only
++ * filesystem so screen should not even attempt to set mode or group
++ * even if running as root (e.g. on TiVo).
++ */
++#undef PTYMODE
++#undef PTYGROUP
++#undef PTYROFS
++
++/*
++ * If screen is NOT installed set-uid root, screen can provide tty
++ * security by exclusively locking the ptys. While this keeps other
++ * users from opening your ptys, it also keeps your own subprocesses
++ * from being able to open /dev/tty. Define LOCKPTY to add this
++ * exclusive locking.
++ */
++#undef LOCKPTY
++
++/*
++ * If you'd rather see the status line on the first line of your
++ * terminal rather than the last, define TOPSTAT.
++ */
++#undef TOPSTAT
++
++/*
++ * define DETACH can detach a session. An absolute 'must'.
++ */
++#define DETACH
++
++/*
++ * here come the erlangen extensions to screen:
++ * define LOCK if you want to use a lock program for a screenlock.
++ * define PASSWORD for secure reattach of your screen.
++ * define COPY_PASTE to use the famous hacker's treasure zoo.
++ * define POW_DETACH to have a detach_and_logout key (requires DETACH).
++ * define REMOTE_DETACH (-d option) to move screen between terminals.
++ * define AUTO_NUKE to enable Tim MacKenzies clear screen nuking
++ * define PSEUDOS to allow window input/output filtering
++ * define MULTI to allow multiple attaches.
++ * define MULTIUSER to allow other users attach to your session
++ * (if they are in the acl, of course)
++ * define MAPKEYS to include input keyboard translation.
++ * define FONT to support ISO2022/alternet charset support
++ * define COLOR to include ansi color support. This may expose
++ * a bug in x11r6-color-xterm.
++ * define DW_CHARS to include support for double-width character
++ * sets.
++ * define ENCODINGS to include support for encodings like euc or big5.
++ * Needs FONT to work.
++ * define UTF8 if you want support for UTF-8 encoding.
++ * Needs FONT and ENCODINGS to work.
++ * define COLORS16 if you want 16 colors.
++ * Needs COLOR to work.
++ * define BUILTIN_TELNET to add telnet support to screen.
++ * Syntax: screen //telnet host [port]
++ * define RXVT_OSC if you want support for rxvts special
++ * change fgcolor/bgcolor/bgpicture sequences
++ */
++#undef SIMPLESCREEN
++#ifndef SIMPLESCREEN
++# define LOCK
++# define PASSWORD
++# define COPY_PASTE
++# define REMOTE_DETACH
++# define POW_DETACH
++# define AUTO_NUKE
++# define PSEUDOS
++# define MULTI
++# define MULTIUSER
++# define MAPKEYS
++# define COLOR
++# define FONT
++# define DW_CHARS
++# define ENCODINGS
++# define UTF8
++# define COLORS16
++# define ZMODEM
++# define BLANKER_PRG
++#endif /* SIMPLESCREEN */
++
++#undef BUILTIN_TELNET
++#undef RXVT_OSC
++#undef COLORS256
++
++
++/*
++ * If you have a braille display you should define HAVE_BRAILLE.
++ * The code inside #ifdef HAVE_BRAILLE was contributed by Hadi Bargi
++ * Rangin (bargi@dots.physics.orst.edu).
++ * WARNING: this is more or less unsupported code, it may be full of
++ * bugs leading to security holes, enable at your own risk!
++ */
++#undef HAVE_BRAILLE
++
++
++/*
++ * As error messages are mostly meaningless to the user, we
++ * try to throw out phrases that are somewhat more familiar
++ * to ...well, at least familiar to us NetHack players.
++ */
++#ifndef NONETHACK
++# define NETHACK
++#endif /* NONETHACK */
++
++/*
++ * If screen is installed with permissions to update /etc/utmp (such
++ * as if it is installed set-uid root), define UTMPOK.
++ */
++#define UTMPOK
++
++/* Set LOGINDEFAULT to one (1)
++ * if you want entries added to /etc/utmp by default, else set it to
++ * zero (0).
++ * LOGINDEFAULT will be one (1) whenever LOGOUTOK is undefined!
++ */
++#define LOGINDEFAULT 1
++
++/* Set LOGOUTOK to one (1)
++ * if you want the user to be able to log her/his windows out.
++ * (Meaning: They are there, but not visible in /etc/utmp).
++ * Disabling this feature only makes sense if you have a secure /etc/utmp
++ * database.
++ * Negative examples: suns usually have a world writable utmp file,
++ * xterm will run perfectly without s-bit.
++ *
++ * If LOGOUTOK is undefined and UTMPOK is defined, all windows are
++ * initially and permanently logged in.
++ *
++ * Set CAREFULUTMP to one (1) if you want that users have at least one
++ * window per screen session logged in.
++ */
++#define LOGOUTOK 1
++#undef CAREFULUTMP
++
++
++/*
++ * If UTMPOK is defined and your system (incorrectly) counts logins by
++ * counting non-null entries in /etc/utmp (instead of counting non-null
++ * entries with no hostname that are not on a pseudo tty), define USRLIMIT
++ * to have screen put an upper-limit on the number of entries to write
++ * into /etc/utmp. This helps to keep you from exceeding a limited-user
++ * license.
++ */
++#undef USRLIMIT
++
++/*
++ * both must be defined if you want to favor tcsendbreak over
++ * other calls to generate a break condition on serial lines.
++ * (Do not bother, if you are not using plain tty windows.)
++ */
++#define POSIX_HAS_A_GOOD_TCSENDBREAK
++#define SUNOS4_AND_WE_TRUST_TCSENDBREAK
++
++/*
++ * to lower the interrupt load on the host machine, you may want to
++ * adjust the VMIN and VTIME settings used for plain tty windows.
++ * See the termio(4) manual page (Non-Canonical Mode Input Processing)
++ * for details.
++ * if undefined, VMIN=1, VTIME=0 is used as a default - this gives you
++ * best user responsiveness, but highest interrupt frequency.
++ * (Do not bother, if you are not using plain tty windows.)
++ */
++#define TTYVMIN 100
++#define TTYVTIME 2
++
++/*
++ * looks like the above values are ignored by setting FNDELAY.
++ * This is default for all pty/ttys, you may disable it for
++ * ttys here. After playing with it for a while, one may find out
++ * that this feature may cause screen to lock up.
++ */
++#ifdef bsdi
++# define TTY_DISABLE_FNBLOCK /* select barfs without it ... */
++#endif
++
++
++/*
++ * Some terminals, e.g. Wyse 120, use a bitfield to select attributes.
++ * This doesn't work with the standard so/ul/m? terminal entries,
++ * because they will cancel each other out.
++ * On TERMINFO machines, "sa" (sgr) may work. If you want screen
++ * to switch attributes only with sgr, define USE_SGR.
++ * This is *not* recomended, do this only if you must.
++ */
++#undef USE_SGR
++
++
++/*
++ * Define USE_LOCALE if you want screen to use the locale names
++ * for the name of the month and day of the week.
++ */
++#define USE_LOCALE
++
++/*
++ * Define USE_PAM if your system supports PAM (Pluggable Authentication
++ * Modules) and you want screen to use it instead of calling crypt().
++ * (You may also need to add -lpam to LIBS in the Makefile.)
++ */
++#undef USE_PAM
++
++/*
++ * Define CHECK_SCREEN_W if you want screen to set TERM to screen-w
++ * if the terminal width is greater than 131 columns. No longer needed
++ * on modern systems which use $COLUMNS or the tty settings instead.
++ */
++#undef CHECK_SCREEN_W
++
++/**********************************************************************
++ *
++ * End of User Configuration Section
++ *
++ * Rest of this file is modified by 'configure'
++ * Change at your own risk!
++ *
++ */
++])
++# end of AH_TOP
++
+ old_CFLAGS="$CFLAGS"
+ AC_PROG_CC
+ AC_PROG_CPP
diff --git a/recipes/screen/screen-4.0.3/no-stropts.patch b/recipes/screen/screen-4.0.3/no-stropts.patch
new file mode 100644
index 0000000000..bce651479d
--- /dev/null
+++ b/recipes/screen/screen-4.0.3/no-stropts.patch
@@ -0,0 +1,13 @@
+Index: screen-4.0.3/pty.c
+===================================================================
+--- screen-4.0.3.orig/pty.c 2009-09-11 15:44:44.881250800 -0700
++++ screen-4.0.3/pty.c 2009-09-11 15:45:28.077862097 -0700
+@@ -34,7 +34,7 @@
+ #endif
+
+ /* for solaris 2.1, Unixware (SVR4.2) and possibly others */
+-#ifdef HAVE_SVR4_PTYS
++#if defined HAVE_SVR4_PTYS && !defined __UCLIBC__
+ # include <sys/stropts.h>
+ #endif
+
diff --git a/recipes/screen/screen-4.0.3/no-utempter.patch b/recipes/screen/screen-4.0.3/no-utempter.patch
new file mode 100644
index 0000000000..22d21bb919
--- /dev/null
+++ b/recipes/screen/screen-4.0.3/no-utempter.patch
@@ -0,0 +1,17 @@
+Index: screen-4.0.3/configure.in
+===================================================================
+--- screen-4.0.3.orig/configure.in 2009-09-11 18:42:08.338231443 -0700
++++ screen-4.0.3/configure.in 2009-09-11 18:43:39.378663533 -0700
+@@ -1243,12 +1243,6 @@
+ #include <utmp.h>
+ #endif
+ ],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE(UTHOST))
+-AH_TEMPLATE([HAVE_UTEMPTER])
+-AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no)
+-if test "$have_utempter" = yes; then
+- AC_DEFINE(HAVE_UTEMPTER)
+- LIBS="$LIBS -lutempter"
+-fi
+
+ dnl
+ dnl **** loadav ****
diff --git a/recipes/screen/screen-4.0.3/sched.patch b/recipes/screen/screen-4.0.3/sched.patch
new file mode 100644
index 0000000000..5c635c157b
--- /dev/null
+++ b/recipes/screen/screen-4.0.3/sched.patch
@@ -0,0 +1,20 @@
+diff -urN screen-4.0.3-orig/sched.h screen-4.0.3/sched.h
+--- screen-4.0.3-orig/sched.h 2002-01-08 16:42:43.000000000 +0100
++++ screen-4.0.3/sched.h 2009-01-13 14:53:15.000000000 +0100
+@@ -22,6 +22,10 @@
+ * $Id: sched.h,v 1.1.1.1 1993/06/16 23:51:13 jnweiger Exp $ FAU
+ */
+
++#ifndef _SCHED_H_
++#define _SCHED_H_ 1
++#include <sys/types.h>
++
+ struct event
+ {
+ struct event *next;
+@@ -41,3 +45,4 @@
+ #define EV_READ 1
+ #define EV_WRITE 2
+ #define EV_ALWAYS 3
++#endif
+
diff --git a/recipes/screen/screen_4.0.3.bb b/recipes/screen/screen_4.0.3.bb
index 1165d46d33..003ca7a1a4 100644
--- a/recipes/screen/screen_4.0.3.bb
+++ b/recipes/screen/screen_4.0.3.bb
@@ -4,13 +4,15 @@ processes, typically interactive shells."
LICENSE = "GPL"
SECTION = "console/utils"
DEPENDS = "ncurses"
-PR = "r0"
-
-# patch needs adapting
-DEFAULT_PREFERENCE = "-1"
+PR = "r1"
SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \
- file://configure.patch;patch=1"
+ file://cross-compile.patch;patch=1 \
+ file://configure.patch;patch=1 \
+ file://sched.patch;patch=1 \
+ file://no-stropts.patch;patch=1 \
+ file://no-utempter.patch;patch=1 \
+ "
inherit autotools