summaryrefslogtreecommitdiffstats
path: root/patches/screen-4.0.3
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2011-03-27 15:25:18 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2011-03-27 15:27:58 +0200
commit85be3bf0382d8734327757f034559628721bcb52 (patch)
treee3cb2c8c694de50a7f7b24725579b6a58bd38b01 /patches/screen-4.0.3
parent284b77c8e76b9ef60434bfe72a0ed3948cabb64b (diff)
downloadptxdist-85be3bf0382d8734327757f034559628721bcb52.tar.gz
ptxdist-85be3bf0382d8734327757f034559628721bcb52.tar.xz
screen: version bump: 4.0.2 -> 4.0.3
also: add patch to avoid linking against libelf Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Diffstat (limited to 'patches/screen-4.0.3')
-rw-r--r--patches/screen-4.0.3/0001-don-t-link-against-libelf.patch35
-rw-r--r--patches/screen-4.0.3/0002-remove-configure-AC_TRY_RUN-tests.patch729
-rw-r--r--patches/screen-4.0.3/0003-Fix-screenencodings-dir.patch27
-rw-r--r--patches/screen-4.0.3/0004-autoconf-cleanup.patch414
-rwxr-xr-xpatches/screen-4.0.3/autogen.sh9
-rw-r--r--patches/screen-4.0.3/series6
6 files changed, 1220 insertions, 0 deletions
diff --git a/patches/screen-4.0.3/0001-don-t-link-against-libelf.patch b/patches/screen-4.0.3/0001-don-t-link-against-libelf.patch
new file mode 100644
index 000000000..84ab86ea0
--- /dev/null
+++ b/patches/screen-4.0.3/0001-don-t-link-against-libelf.patch
@@ -0,0 +1,35 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 27 Mar 2011 15:19:15 +0200
+Subject: [PATCH] don't link against libelf
+
+libelf is not used. It's just some broken configure check.
+Patch from gentoo.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ configure.in | 9 ---------
+ 1 files changed, 0 insertions(+), 9 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 34c9372..c1460af 100644
+--- a/configure.in
++++ b/configure.in
+@@ -195,15 +195,6 @@ AC_EGREP_CPP(yes,
+ #endif
+ ], LIBS="$LIBS -lsocket -linet";seqptx=1)
+
+-oldlibs="$LIBS"
+-LIBS="$LIBS -lelf"
+-AC_CHECKING(SVR4)
+-AC_TRY_LINK([#include <utmpx.h>
+-],,
+-[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
+-[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])]
+-,LIBS="$oldlibs")
+-
+ AC_CHECKING(for Solaris 2.x)
+ AC_EGREP_CPP(yes,
+ [#if defined(SVR4) && defined(sun)
+--
+1.7.4.1
+
diff --git a/patches/screen-4.0.3/0002-remove-configure-AC_TRY_RUN-tests.patch b/patches/screen-4.0.3/0002-remove-configure-AC_TRY_RUN-tests.patch
new file mode 100644
index 000000000..f5299c3d2
--- /dev/null
+++ b/patches/screen-4.0.3/0002-remove-configure-AC_TRY_RUN-tests.patch
@@ -0,0 +1,729 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 27 Mar 2011 15:22:02 +0200
+Subject: [PATCH] remove configure AC_TRY_RUN tests
+
+AC_TRY_RUN fails when cross-compiling.
+
+Not for upstream.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ configure.in | 652 +---------------------------------------------------------
+ 1 files changed, 9 insertions(+), 643 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index c1460af..419279d 100644
+--- a/configure.in
++++ b/configure.in
+@@ -46,31 +46,6 @@ AC_PROG_CPP
+ AC_PROG_GCC_TRADITIONAL
+ AC_ISC_POSIX
+
+-AC_TRY_RUN(main(){exit(0);},,[
+-if test $CC != cc ; then
+-AC_NOTE(Your $CC failed - restarting with CC=cc)
+-AC_NOTE()
+-CC=cc
+-export CC
+-exec $0 $configure_args
+-fi
+-])
+-
+-AC_TRY_RUN(main(){exit(0);},,
+-exec 5>&2
+-eval $ac_link
+-AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;)
+-AC_NOTE($ac_compile)
+-AC_MSG_ERROR(Can't run the compiler - sorry))
+-
+-AC_TRY_RUN([
+-main()
+-{
+- int __something_strange_();
+- __something_strange_(0);
+-}
+-],AC_MSG_ERROR(Your compiler does not set the exit status - sorry))
+-
+ AC_PROG_AWK
+
+ AC_PROG_INSTALL
+@@ -279,354 +254,6 @@ AC_CHECKING(select with $LIBS)
+ AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
+ AC_MSG_ERROR(!!! no select - no screen))
+ )
+-dnl
+-dnl **** FIFO tests ****
+-dnl
+-
+-AC_CHECKING(fifos)
+-AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-
+-#ifndef O_NONBLOCK
+-#define O_NONBLOCK O_NDELAY
+-#endif
+-#ifndef S_IFIFO
+-#define S_IFIFO 0010000
+-#endif
+-
+-char *fin = "/tmp/conftest$$";
+-
+-main()
+-{
+- struct stat stb;
+-#ifdef FD_SET
+- fd_set f;
+-#else
+- int f;
+-#endif
+-
+- (void)alarm(5);
+-#ifdef POSIX
+- if (mkfifo(fin, 0777))
+-#else
+- if (mknod(fin, S_IFIFO|0777, 0))
+-#endif
+- exit(1);
+- if (stat(fin, &stb) || (stb.st_mode & S_IFIFO) != S_IFIFO)
+- exit(1);
+- close(0);
+-#ifdef __386BSD__
+- /*
+- * The next test fails under 386BSD, but screen works using fifos.
+- * Fifos in O_RDWR mode are only used for the BROKEN_PIPE case and for
+- * the select() configuration test.
+- */
+- exit(0);
+-#endif
+- if (open(fin, O_RDONLY | O_NONBLOCK))
+- exit(1);
+- if (fork() == 0)
+- {
+- close(0);
+- if (open(fin, O_WRONLY | O_NONBLOCK))
+- exit(1);
+- close(0);
+- if (open(fin, O_WRONLY | O_NONBLOCK))
+- exit(1);
+- if (write(0, "TEST", 4) == -1)
+- exit(1);
+- exit(0);
+- }
+-#ifdef FD_SET
+- FD_SET(0, &f);
+-#else
+- f = 1;
+-#endif
+- if (select(1, &f, 0, 0, 0) == -1)
+- exit(1);
+- exit(0);
+-}
+-], AC_NOTE(- your fifos are usable) fifo=1,
+-AC_NOTE(- your fifos are not usable))
+-rm -f /tmp/conftest*
+-
+-if test -n "$fifo"; then
+-AC_CHECKING(for broken fifo implementation)
+-AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <fcntl.h>
+-#include <sys/time.h>
+-#include <sys/stat.h>
+-
+-#ifndef O_NONBLOCK
+-#define O_NONBLOCK O_NDELAY
+-#endif
+-#ifndef S_IFIFO
+-#define S_IFIFO 0010000
+-#endif
+-
+-char *fin = "/tmp/conftest$$";
+-
+-main()
+-{
+- struct timeval tv;
+-#ifdef FD_SET
+- fd_set f;
+-#else
+- int f;
+-#endif
+-
+-#ifdef POSIX
+- if (mkfifo(fin, 0600))
+-#else
+- if (mknod(fin, S_IFIFO|0600, 0))
+-#endif
+- exit(1);
+- close(0);
+- if (open(fin, O_RDONLY|O_NONBLOCK))
+- exit(1);
+-#ifdef FD_SET
+- FD_SET(0, &f);
+-#else
+- f = 1;
+-#endif
+- tv.tv_sec = 1;
+- tv.tv_usec = 0;
+- if (select(1, &f, 0, 0, &tv))
+- 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*
+-fi
+-
+-dnl
+-dnl **** SOCKET tests ****
+-dnl
+-dnl may need LIBS="$LIBS -lsocket" here
+-dnl
+-
+-AC_CHECKING(sockets)
+-AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/socket.h>
+-#include <sys/un.h>
+-#include <fcntl.h>
+-
+-char *son = "/tmp/conftest$$";
+-
+-main()
+-{
+- int s1, s2, l;
+- struct sockaddr_un a;
+-#ifdef FD_SET
+- fd_set f;
+-#else
+- int f;
+-#endif
+-
+- (void)alarm(5);
+- if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+- exit(1);
+- a.sun_family = AF_UNIX;
+- strcpy(a.sun_path, son);
+- (void) unlink(son);
+- if (bind(s1, (struct sockaddr *) &a, strlen(son)+2) == -1)
+- exit(1);
+- if (listen(s1, 2))
+- exit(1);
+- if (fork() == 0)
+- {
+- if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+- kill(getppid(), 3);
+- (void)connect(s2, (struct sockaddr *)&a, strlen(son) + 2);
+- if (write(s2, "HELLO", 5) == -1)
+- kill(getppid(), 3);
+- exit(0);
+- }
+- l = sizeof(a);
+- close(0);
+- if (accept(s1, &a, &l))
+- exit(1);
+-#ifdef FD_SET
+- FD_SET(0, &f);
+-#else
+- f = 1;
+-#endif
+- if (select(1, &f, 0, 0, 0) == -1)
+- exit(1);
+- exit(0);
+-}
+-], AC_NOTE(- your sockets are usable) sock=1,
+-AC_NOTE(- your sockets are not usable))
+-rm -f /tmp/conftest*
+-
+-if test -n "$sock"; then
+-AC_CHECKING(socket implementation)
+-AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <sys/socket.h>
+-#include <sys/un.h>
+-
+-char *son = "/tmp/conftest$$";
+-
+-main()
+-{
+- int s;
+- struct stat stb;
+- struct sockaddr_un a;
+- if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+- exit(0);
+- a.sun_family = AF_UNIX;
+- strcpy(a.sun_path, son);
+- (void) unlink(son);
+- if (bind(s, (struct sockaddr *) &a, strlen(son)+2) == -1)
+- exit(0);
+- if (stat(son, &stb))
+- exit(1);
+- close(s);
+- exit(0);
+-}
+-],AC_NOTE(- you are normal),
+-AC_NOTE(- unix domain sockets are not kept in the filesystem)
+-AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1)
+-rm -f /tmp/conftest*
+-fi
+-
+-
+-dnl
+-dnl **** choose sockets or fifos ****
+-dnl
+-if test -n "$fifo"; then
+- if test -n "$sock"; then
+- if test -n "$nore"; then
+- AC_NOTE(- hmmm... better take the fifos)
+- AC_DEFINE(NAMEDPIPE)
+- elif test -n "$fifobr"; then
+- AC_NOTE(- as your fifos are broken lets use the sockets.)
+- else
+- AC_NOTE(- both sockets and fifos usable. let's take fifos.)
+- AC_DEFINE(NAMEDPIPE)
+- fi
+- else
+- AC_NOTE(- using named pipes, of course)
+- AC_DEFINE(NAMEDPIPE)
+- fi
+-elif test -n "$sock"; then
+- AC_NOTE(- using unix-domain sockets, of course)
+-else
+- AC_MSG_ERROR(you have neither usable sockets nor usable pipes -> no screen)
+-fi
+-
+-dnl
+-dnl **** check the select implementation ****
+-dnl
+-
+-AC_CHECKING(select return value)
+-AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-
+-char *nam = "/tmp/conftest$$";
+-
+-#ifdef NAMEDPIPE
+-
+-#ifndef O_NONBLOCK
+-#define O_NONBLOCK O_NDELAY
+-#endif
+-#ifndef S_IFIFO
+-#define S_IFIFO 0010000
+-#endif
+-
+-
+-main()
+-{
+-#ifdef FD_SET
+- fd_set f;
+-#else
+- int f;
+-#endif
+-
+-#ifdef __FreeBSD__
+-/* From Andrew A. Chernov (ache@astral.msk.su):
+- * opening RDWR fifo fails in BSD 4.4, but select return values are
+- * right.
+- */
+- exit(0);
+-#endif
+- (void)alarm(5);
+-#ifdef POSIX
+- if (mkfifo(nam, 0777))
+-#else
+- if (mknod(nam, S_IFIFO|0777, 0))
+-#endif
+- exit(1);
+- close(0);
+- if (open(nam, O_RDWR | O_NONBLOCK))
+- exit(1);
+- if (write(0, "TEST", 4) == -1)
+- exit(1);
+-
+-#else
+-
+-#include <sys/types.h>
+-#include <sys/socket.h>
+-#include <sys/un.h>
+-
+-main()
+-{
+- int s1, s2, l;
+- struct sockaddr_un a;
+-#ifdef FD_SET
+- fd_set f;
+-#else
+- int f;
+-#endif
+-
+- (void)alarm(5);
+- if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+- exit(1);
+- a.sun_family = AF_UNIX;
+- strcpy(a.sun_path, nam);
+- (void) unlink(nam);
+- if (bind(s1, (struct sockaddr *) &a, strlen(nam)+2) == -1)
+- exit(1);
+- if (listen(s1, 2))
+- exit(1);
+- if (fork() == 0)
+- {
+- if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
+- kill(getppid(), 3);
+- (void)connect(s2, (struct sockaddr *)&a, strlen(nam) + 2);
+- if (write(s2, "HELLO", 5) == -1)
+- kill(getppid(), 3);
+- exit(0);
+- }
+- l = sizeof(a);
+- close(0);
+- if (accept(s1, (struct sockaddr *)&a, &l))
+- exit(1);
+-#endif
+-
+-
+-#ifdef FD_SET
+- FD_SET(0, &f);
+-#else
+- f = 1;
+-#endif
+- if (select(1, &f, 0, 0, 0) == -1)
+- exit(1);
+- if (select(1, &f, &f, 0, 0) != 2)
+- exit(1);
+- exit(0);
+-}
+-],AC_NOTE(- select is ok),
+-AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN))
+
+ dnl
+ dnl **** termcap or terminfo ****
+@@ -654,12 +281,8 @@ AC_CHECKING(libncurses)
+ AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
+ AC_MSG_ERROR(!!! no tgetent - no screen))))))
+
+-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))
++AC_DEFINE(TERMINFO))
++
+ AC_CHECKING(ospeed)
+ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
+
+@@ -710,95 +333,6 @@ AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
+ AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
+ fi
+
+-dnl **** pty mode/group handling ****
+-dnl
+-dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
+-AC_ARG_WITH(pty-mode, [ --with-pty-mode=mode default mode for ptys], [ ptymode="${withval}" ])
+-AC_ARG_WITH(pty-group, [ --with-pty-group=group default group for ptys], [ ptygrp="${withval}" ])
+-test -n "$ptymode" || ptymode=0620
+-if test -n "$ptygrp" ; then
+-AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
+-AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
+-else
+-
+-AC_CHECKING(default tty permissions/group)
+-rm -f conftest_grp
+-AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <stdio.h>
+-main()
+-{
+- struct stat sb;
+- char *x,*ttyname();
+- int om, m;
+- FILE *fp;
+-
+- if (!(x = ttyname(0))) exit(1);
+- if (stat(x, &sb)) exit(1);
+- om = sb.st_mode;
+- if (om & 002) exit(0);
+- m = system("mesg y");
+- if (m == -1 || m == 127) exit(1);
+- if (stat(x, &sb)) exit(1);
+- m = sb.st_mode;
+- if (chmod(x, om)) exit(1);
+- if (m & 002) exit(0);
+- if (sb.st_gid == getgid()) exit(1);
+- if (!(fp=fopen("conftest_grp", "w")))
+- exit(1);
+- fprintf(fp, "%d\n", sb.st_gid);
+- fclose(fp);
+- exit(0);
+-}
+-],[
+- if test -f conftest_grp; then
+- ptygrp=`cat conftest_grp`
+- AC_NOTE([- pty mode: $ptymode, group: $ptygrp])
+- AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
+- AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
+- else
+- AC_NOTE(- ptys are world accessable)
+- fi
+-],[
+- WRITEPATH=''
+- XTERMPATH=''
+- AC_PATH_PROG(WRITEPATH, write)
+- AC_PATH_PROG(XTERMPATH, xterm)
+- found=
+- if test -n "$WRITEPATH$XTERMPATH"; then
+- findfollow=
+- lsfollow=
+- found=`find $WRITEPATH $XTERMPATH -follow -print 2>/dev/null`
+- if test -n "$found"; then
+- findfollow=-follow
+- lsfollow=L
+- fi
+- if test -n "$XTERMPATH"; then
+- ptygrpn=`ls -l$lsfollow $XTERMPATH | sed -n -e 1p | $AWK '{print $4}'`
+- if test tty != "$ptygrpn"; then
+- XTERMPATH=
+- fi
+- fi
+- fi
+- if test -n "$WRITEPATH$XTERMPATH"; then
+- found=`find $WRITEPATH $XTERMPATH $findfollow -perm -2000 -print`
+- if test -n "$found"; then
+- ptygrp=`ls -ln$lsfollow $found | sed -n -e 1p | $AWK '{print $4}'`
+- AC_NOTE([- pty mode: $ptymode, group: $ptygrp])
+- AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
+- AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
+- else
+- AC_NOTE(- ptys are world accessable)
+- fi
+- else
+- AC_NOTE(- can't determine - assume ptys are world accessable)
+- fi
+- ]
+-)
+-rm -f conftest_grp
+-fi
+-
+ dnl
+ dnl **** utmp handling ****
+ dnl
+@@ -871,101 +405,6 @@ AC_DEFINE(LOADAV_GETLOADAVG) load=1, LIBS="$olibs")
+ fi
+ )
+
+-if test -z "$load" ; then
+-AC_EGREP_CPP(yes,
+-[#if defined(NeXT) || defined(apollo) || defined(linux)
+- yes;
+-#endif
+-], load=1)
+-fi
+-if test -z "$load" ; then
+-AC_CHECKING(for kernelfile)
+-for core in /unix /vmunix /dynix /hp-ux /xelos /dev/ksyms /kernel/unix /kernel/genunix /unicos /mach /netbsd /386bsd /dgux /bsd /stand/vmunix; do
+- if test -f $core || test -c $core; then
+- break
+- fi
+-done
+-if test ! -f $core && test ! -c $core ; then
+- AC_NOTE(- no kernelfile found)
+-else
+- AC_NOTE(- using kernelfile '$core')
+- if test -r $core ; then
+- AC_DEFINE_UNQUOTED(LOADAV_UNIX,"$core")
+- AC_CHECK_HEADER(nlist.h,
+- [AC_DEFINE(NLIST_STRUCT)
+- AC_CHECKING(n_un in struct nlist)
+- AC_TRY_COMPILE([#include <nlist.h>],
+- [struct nlist n; n.n_un.n_name = 0;],
+- AC_DEFINE(NLIST_NAME_UNION))])
+-
+- AC_CHECKING(for nlist declaration)
+- AC_EGREP_CPP([nlist(( | )( | )*.*\(|\()],[
+-#ifdef NLIST_STRUCT
+-# include <nlist.h>
+-#else
+-# include <a.out.h>
+-#endif
+-],AC_DEFINE(NLIST_DECLARED))
+-
+- AC_CHECKING(for avenrun symbol)
+- nlist64=
+- for av in avenrun _avenrun _Loadavg avenrun _avenrun _Loadavg; do
+- AC_TRY_RUN([
+-#include <sys/types.h>
+-#ifdef NLIST_STRUCT
+-#include <nlist.h>
+-#else
+-#include <a.out.h>
+-#endif
+-
+-$nlist64
+-
+-struct nlist nl[2];
+-
+-main()
+-{
+-#if !defined(_AUX_SOURCE) && !defined(AUX)
+-# ifdef NLIST_NAME_UNION
+- nl[0].n_un.n_name = "$av";
+-# else
+- nl[0].n_name = "$av";
+-# endif
+-#else
+- strncpy(nl[0].n_name, "$av", sizeof(nl[0].n_name));
+-#endif
+- nlist(LOADAV_UNIX, nl);
+- if (nl[0].n_value == 0)
+- exit(1);
+- exit(0);
+-}
+- ],avensym=$av;break)
+- if test "$av" = _Loadavg; then
+- nlist64='#define nlist nlist64'
+- fi
+- done
+- if test -z "$avensym" ; then
+- AC_NOTE(- no avenrun symbol found)
+- else
+- AC_NOTE(- using avenrun symbol '$avensym')
+- AC_DEFINE_UNQUOTED(LOADAV_AVENRUN,"$avensym")
+- if test -n "$nlist64"; then
+- AC_NOTE(- used nlist64 to find it)
+- AC_DEFINE(LOADAV_USE_NLIST64)
+- fi
+- load=1
+- fi
+- else
+- AC_NOTE( Can't configure the load average display feature)
+- AC_NOTE( because $core is not readable by you.)
+- AC_NOTE( To configure the load average display feature,)
+- AC_NOTE( re-run configure as root if possible.)
+- AC_NOTE( If you are not the system administrator then disregard)
+- AC_NOTE( this warning. You can still use screen without)
+- AC_NOTE( the load average display feature.)
+- fi
+-fi
+-fi
+-
+ AC_PROGRAM_SOURCE([
+ #include <sys/types.h>
+ #include <sys/param.h>
+@@ -1037,41 +476,8 @@ sigset(0, (void (*)())0);
+ sigset(0, (int (*)())0);
+ #endif
+ ], AC_DEFINE(USESIGSET))
+-AC_CHECKING(signal implementation)
+-AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <signal.h>
+
+-#ifndef SIGCLD
+-#define SIGCLD SIGCHLD
+-#endif
+-#ifdef USESIGSET
+-#define signal sigset
+-#endif
+-
+-int got;
+-
+-#ifdef SIGVOID
+-void
+-#endif
+-hand()
+-{
+- got++;
+-}
+-
+-main()
+-{
+- /* on hpux we use sigvec to get bsd signals */
+-#ifdef __hpux
+- (void)signal(SIGCLD, hand);
+- kill(getpid(), SIGCLD);
+- kill(getpid(), SIGCLD);
+- if (got < 2)
+- exit(1);
+-#endif
+- exit(0);
+-}
+-],,AC_DEFINE(SYSVSIGS))
++AC_DEFINE(SYSVSIGS)
+
+ fi
+
+@@ -1139,50 +545,12 @@ AC_CHECKING(fdwalk)
+ AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
+
+ AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
+-AC_TRY_RUN([
+-main() {
+- char buf[10];
+- strcpy(buf, "abcdefghi");
+- bcopy(buf, buf + 2, 3);
+- if (strncmp(buf, "ababcf", 6))
+- exit(1);
+- strcpy(buf, "abcdefghi");
+- bcopy(buf + 2, buf, 3);
+- if (strncmp(buf, "cdedef", 6))
+- exit(1);
+- exit(0); /* libc version works properly. */
+-}], AC_DEFINE(USEBCOPY))
+-
+-AC_TRY_RUN([
+-#define bcopy(s,d,l) memmove(d,s,l)
+-main() {
+- char buf[10];
+- strcpy(buf, "abcdefghi");
+- bcopy(buf, buf + 2, 3);
+- if (strncmp(buf, "ababcf", 6))
+- exit(1);
+- strcpy(buf, "abcdefghi");
+- bcopy(buf + 2, buf, 3);
+- if (strncmp(buf, "cdedef", 6))
+- exit(1);
+- exit(0); /* libc version works properly. */
+-}], AC_DEFINE(USEMEMMOVE))
+-
+-
+-AC_TRY_RUN([
+-#define bcopy(s,d,l) memcpy(d,s,l)
+-main() {
+- char buf[10];
+- strcpy(buf, "abcdefghi");
+- bcopy(buf, buf + 2, 3);
+- if (strncmp(buf, "ababcf", 6))
+- exit(1);
+- strcpy(buf, "abcdefghi");
+- bcopy(buf + 2, buf, 3);
+- if (strncmp(buf, "cdedef", 6))
+- exit(1);
+- exit(0); /* libc version works properly. */
+-}], AC_DEFINE(USEMEMCPY))
++AC_DEFINE(USEBCOPY)
++
++AC_DEFINE(USEMEMMOVE)
++
++
++AC_DEFINE(USEMEMCPY)
+
+ AC_MSG_CHECKING(long file names)
+ (echo 1 > /tmp/conftest9012345) 2>/dev/null
+@@ -1257,8 +625,6 @@ fi
+ dnl Ptx bug workaround -- insert -lc after -ltermcap
+ test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq"
+
+-AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.))
+-
+ ETCSCREENRC="\"/usr/local/etc/screenrc\""
+ if test -n "$prefix"; then
+ ETCSCREENRC="\"$prefix/etc/screenrc\""
+--
+1.7.4.1
+
diff --git a/patches/screen-4.0.3/0003-Fix-screenencodings-dir.patch b/patches/screen-4.0.3/0003-Fix-screenencodings-dir.patch
new file mode 100644
index 000000000..18ae4ffb9
--- /dev/null
+++ b/patches/screen-4.0.3/0003-Fix-screenencodings-dir.patch
@@ -0,0 +1,27 @@
+From: Marc Kleine-Budde <mkl@pengutronix.de>
+Date: Sun, 27 Mar 2011 15:18:27 +0200
+Subject: [PATCH] Fix screenencodings dir
+
+This patch fixes the assignement of the SCREENENCODINGS variable which was holding "${}" before.
+
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+---
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 419279d..5411add 100644
+--- a/configure.in
++++ b/configure.in
+@@ -637,7 +637,7 @@ AC_MSG_RESULT($ETCSCREENRC)
+ SCREENENCODINGS="\"/usr/local/lib/screen/utf8encodings\""
+ if test -n "$datadir"; then
+ eval SCREENENCODINGS="$datadir/screen/utf8encodings"
+-SCREENENCODINGS="\"$SCREENENCODINGS\""
++eval SCREENENCODINGS="\\\"$SCREENENCODINGS\\\""
+ fi
+ AC_MSG_CHECKING(for the utf8-encodings location)
+ AC_DEFINE_UNQUOTED(SCREENENCODINGS,$SCREENENCODINGS)
+--
+1.7.4.1
+
diff --git a/patches/screen-4.0.3/0004-autoconf-cleanup.patch b/patches/screen-4.0.3/0004-autoconf-cleanup.patch
new file mode 100644
index 000000000..e9379f8d4
--- /dev/null
+++ b/patches/screen-4.0.3/0004-autoconf-cleanup.patch
@@ -0,0 +1,414 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 27 Mar 2011 15:23:55 +0200
+Subject: [PATCH] autoconf cleanup
+
+update to latest autoconf syntax
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ configure.in | 118 +++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 59 insertions(+), 59 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 5411add..6864c71 100644
+--- a/configure.in
++++ b/configure.in
+@@ -70,7 +70,7 @@ AC_ARG_ENABLE(socket-dir,
+ SOCKDIR="(eff_uid ? \"/tmp/uscreens\" : \"/tmp/screens\")"
+ AC_ARG_WITH(socket-dir, [ --with-socket-dir=path where to put the per-user sockets], [ SOCKDIR="\"${withval}\"" ])
+ AC_MSG_RESULT(${SOCKDIR})
+- AC_DEFINE_UNQUOTED(SOCKDIR, $SOCKDIR)
++ AC_DEFINE_UNQUOTED(SOCKDIR, $SOCKDIR,[SOCKDIR])
+ ]
+ )
+
+@@ -79,18 +79,18 @@ dnl
+ dnl **** special unix variants ****
+ dnl
+ if test -n "$ISC"; then
+- AC_DEFINE(ISC) LIBS="$LIBS -linet"
++ AC_DEFINE([ISC],[1],[ISC]) LIBS="$LIBS -linet"
+ fi
+
+ dnl AC_CHECKING(for OSF1)
+ dnl if test -f /bin/uname ; then
+ dnl if test `/bin/uname` = OSF1 || test -f /osf_boot; then
+-dnl AC_DEFINE(OSF1) # this disables MIPS again....
++dnl AC_DEFINE([OSF1],[1],[OSF1]) # this disables MIPS again....
+ dnl fi
+ dnl fi
+
+ if test -f /sysV68 ; then
+-AC_DEFINE(sysV68)
++AC_DEFINE([sysV68],[1],[sysV68])
+ fi
+
+ AC_CHECKING(for MIPS)
+@@ -103,7 +103,7 @@ AC_TRY_LINK(,,,LIBS="$oldlibs")
+ dnl
+ dnl
+ if test -r /dev/ptc; then
+-AC_DEFINE(MIPS)
++AC_DEFINE([MIPS],[1],[MIPS])
+ AC_CHECKING(wait3)
+ AC_TRY_LINK(,[wait3();], ,
+ AC_CHECKING(wait2)
+@@ -112,7 +112,7 @@ dnl John Rouillard (rouilj@sni-usa.com):
+ dnl need -I/usr/include/bsd in RISCOS otherwise sockets are broken, no
+ dnl job control etc.
+ dnl Detect RISCOS if wait2 is present, but not wait3.
+-AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd"
++AC_DEFINE([USE_WAIT2],[1],[USE_WAIT2]) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd"
+ ))
+ fi
+ fi
+@@ -129,7 +129,7 @@ if test -f /usr/lib/libpyr.a ; then
+ oldlibs="$LIBS"
+ LIBS="$LIBS -lpyr"
+ AC_CHECKING(Pyramid OSX)
+-AC_TRY_LINK(,[open_controlling_pty("")], AC_DEFINE(OSX), LIBS="$oldlibs")
++AC_TRY_LINK(,[open_controlling_pty("")], AC_DEFINE([OSX],[1],[OSX]), LIBS="$oldlibs")
+ fi
+
+ dnl ghazi@caip.rutgers.edu (Kaveh R. Ghazi):
+@@ -154,14 +154,14 @@ main () {
+ #ifdef _POSIX_VERSION
+ yes;
+ #endif
+-], AC_NOTE(- you have a POSIX system) AC_DEFINE(POSIX) posix=1)
++], AC_NOTE(- you have a POSIX system) AC_DEFINE([POSIX],[1],[POSIX]) posix=1)
+ fi
+
+ AC_CHECKING(for System V)
+ AC_TRY_COMPILE(
+ [#include <sys/types.h>
+ #include <signal.h>
+-#include <fcntl.h>], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE(SYSV))
++#include <fcntl.h>], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE([SYSV],[1],[SYSV]))
+
+ AC_CHECKING(for sequent/ptx)
+ AC_EGREP_CPP(yes,
+@@ -184,16 +184,16 @@ dnl (currently not used)
+ dnl
+ dnl AC_CHECKING(for pid_t)
+ dnl AC_EGREP_CPP(pid_t,[#include <sys/types.h>
+-dnl ],AC_DEFINE(PID_T_DEFINED))
++dnl ],AC_DEFINE([PID_T_DEFINED],[1],[PID_T_DEFINED]))
+ dnl
+ dnl AC_CHECKING(for sig_t)
+ dnl AC_EGREP_CPP(sig_t,[#include <sys/types.h>
+ dnl #include <signal.h>
+-dnl ],AC_DEFINE(SIG_T_DEFINED))
++dnl ],AC_DEFINE([SIG_T_DEFINED],[1],[SIG_T_DEFINED]))
+ dnl
+ dnl AC_CHECKING(for uid_t)
+ dnl AC_EGREP_CPP(uid_t,[#include <sys/types.h>
+-dnl ],AC_DEFINE(UID_T_DEFINED))
++dnl ],AC_DEFINE([UID_T_DEFINED],[1],[UID_T_DEFINED]))
+ dnl
+
+ dnl
+@@ -215,7 +215,7 @@ setpgrp();
+ int y = TIOCNOTTY;
+ #endif
+ #endif
+-], AC_NOTE(- you have jobcontrol) AC_DEFINE(BSDJOBS), AC_NOTE(- you don't have jobcontrol))
++], AC_NOTE(- you have jobcontrol) AC_DEFINE([BSDJOBS],[1],[BSDJOBS]), AC_NOTE(- you don't have jobcontrol))
+
+ dnl
+ dnl **** setreuid(), seteuid() ****
+@@ -227,7 +227,7 @@ setresuid(0, 0, 0);
+ #else
+ setreuid(0, 0);
+ #endif
+-], AC_DEFINE(HAVE_SETREUID))
++], AC_DEFINE([HAVE_SETREUID],[1],[HAVE_SETREUID]))
+ dnl
+ dnl seteuid() check:
+ dnl linux seteuid was broken before V1.1.11
+@@ -241,7 +241,7 @@ seteuid_is_broken(0);
+ #else
+ seteuid(0);
+ #endif
+-], AC_DEFINE(HAVE_SETEUID))
++], AC_DEFINE([HAVE_SETEUID],[1],[HAVE_SETEUID]))
+
+ dnl
+ dnl **** select() ****
+@@ -281,23 +281,23 @@ AC_CHECKING(libncurses)
+ AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
+ AC_MSG_ERROR(!!! no tgetent - no screen))))))
+
+-AC_DEFINE(TERMINFO))
++AC_DEFINE([TERMINFO],[1],[TERMINFO])
+
+ AC_CHECKING(ospeed)
+-AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
++AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE([NEED_OSPEED],[1],[NEED_OSPEED]))
+
+ dnl
+ dnl **** PTY specific things ****
+ dnl
+ AC_CHECKING(for /dev/ptc)
+ if test -r /dev/ptc; then
+-AC_DEFINE(HAVE_DEV_PTC)
++AC_DEFINE([HAVE_DEV_PTC],[1],[HAVE_DEV_PTC])
+ fi
+
+ AC_CHECKING(for SVR4 ptys)
+ sysvr4ptys=
+ if test -c /dev/ptmx ; then
+-AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
++AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE([HAVE_SVR4_PTYS],[1],[HAVE_SVR4_PTYS])
+ sysvr4ptys=1])
+ fi
+
+@@ -306,7 +306,7 @@ AC_CHECK_FUNCS(getpt)
+ dnl check for openpty()
+ if test -z "$sysvr4ptys"; then
+ AC_CHECK_FUNCS(openpty,,
+-[AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])])
++[AC_CHECK_LIB(util,openpty, [AC_DEFINE([HAVE_OPENPTY],[1],[HAVE_OPENPTY])] [LIBS="$LIBS -lutil"])])
+ fi
+
+ AC_CHECKING(for ptyranges)
+@@ -329,8 +329,8 @@ dnl fi
+ if test "$ptys" != "$pdir/pty??" ; then
+ p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
+ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
+-AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
+-AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
++AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0",[PTYRANGE0])
++AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1",[PTYRANGE1])
+ fi
+
+ dnl
+@@ -350,7 +350,7 @@ AC_TRY_LINK([
+ #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_DEFINE([GETUTENT],[1],[GETUTENT]),
+ olibs="$LIBS"
+ LIBS="$LIBS -lgen"
+ AC_CHECKING(getutent with -lgen)
+@@ -367,7 +367,7 @@ AC_TRY_LINK([
+ #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_DEFINE([GETUTENT],[1],[GETUTENT]), LIBS="$olibs")
+ )
+ AC_CHECKING(ut_host)
+ AC_TRY_COMPILE([
+@@ -379,10 +379,10 @@ AC_TRY_COMPILE([
+ #else
+ #include <utmp.h>
+ #endif
+-],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE(UTHOST))
++],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE([UTHOST],[1],[UTHOST]))
+ AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no)
+ if test "$have_utempter" = yes; then
+- AC_DEFINE(HAVE_UTEMPTER)
++ AC_DEFINE([HAVE_UTEMPTER],[1],[HAVE_UTEMPTER])
+ LIBS="$LIBS -lutempter"
+ fi
+
+@@ -395,13 +395,13 @@ test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
+
+ AC_CHECKING(getloadavg)
+ AC_TRY_LINK(,[getloadavg((double *)0, 0);],
+-AC_DEFINE(LOADAV_GETLOADAVG) load=1,
++AC_DEFINE([LOADAV_GETLOADAVG],[1],[LOADAV_GETLOADAVG]) load=1,
+ if test -f /usr/lib/libkvm.a ; then
+ olibs="$LIBS"
+ LIBS="$LIBS -lkvm"
+ AC_CHECKING(getloadavg with -lkvm)
+ AC_TRY_LINK(,[getloadavg((double *)0, 0);],
+-AC_DEFINE(LOADAV_GETLOADAVG) load=1, LIBS="$olibs")
++AC_DEFINE([LOADAV_GETLOADAVG],[1],[LOADAV_GETLOADAVG]) load=1, LIBS="$olibs")
+ fi
+ )
+
+@@ -441,10 +441,10 @@ loadnum=3
+ #endif
+ ])
+
+-if test -n "$load" ; then AC_DEFINE(LOADAV) fi
+-if test -n "$loadtype" ; then AC_DEFINE_UNQUOTED(LOADAV_TYPE,$loadtype) fi
+-if test -n "$loadnum" ; then AC_DEFINE_UNQUOTED(LOADAV_NUM,$loadnum) fi
+-if test -n "$loadscale" ; then AC_DEFINE_UNQUOTED(LOADAV_SCALE,$loadscale) fi
++if test -n "$load" ; then AC_DEFINE([LOADAV],[1],[LOADAV]) fi
++if test -n "$loadtype" ; then AC_DEFINE_UNQUOTED(LOADAV_TYPE,$loadtype,[LOADAV_TYPE]) fi
++if test -n "$loadnum" ; then AC_DEFINE_UNQUOTED(LOADAV_NUM,$loadnum,[LOADAV_NUM]) fi
++if test -n "$loadscale" ; then AC_DEFINE_UNQUOTED(LOADAV_SCALE,$loadscale,[LOADAV_SCALE]) fi
+
+ dnl
+ dnl **** signal handling ****
+@@ -453,7 +453,7 @@ if test -n "$posix" ; then
+
+ dnl POSIX has reliable signals with void return type.
+ AC_NOTE(assuming posix signal definition)
+-AC_DEFINE(SIGVOID)
++AC_DEFINE([SIGVOID],[1],[SIGVOID])
+
+ else
+
+@@ -464,7 +464,7 @@ AC_TRY_COMPILE(
+ #ifdef signal
+ #undef signal
+ #endif
+-extern void (*signal ()) ();], [int i;], AC_DEFINE(SIGVOID))
++extern void (*signal ()) ();], [int i;], AC_DEFINE([SIGVOID],[1],[SIGVOID]))
+ AC_CHECKING(sigset)
+ AC_TRY_LINK([
+ #include <sys/types.h>
+@@ -475,9 +475,9 @@ sigset(0, (void (*)())0);
+ #else
+ sigset(0, (int (*)())0);
+ #endif
+-], AC_DEFINE(USESIGSET))
++], AC_DEFINE([USESIGSET],[1],[USESIGSET]))
+
+-AC_DEFINE(SYSVSIGS)
++AC_DEFINE([SYSVSIGS],[1],[SYSVSIGS])
+
+ fi
+
+@@ -503,7 +503,7 @@ AC_TRY_LINK(,[closelog();], , [oldlibs="$LIBS"
+ LIBS="$LIBS -lbsd"
+ AC_CHECKING(syslog in libbsd.a)
+ AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs"
+-AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])])
++AC_NOTE(- bad news: syslog missing.) AC_DEFINE([NOSYSLOG],[1],[NOSYSLOG])])])
+
+ AC_EGREP_CPP(yes,
+ [#ifdef M_UNIX
+@@ -523,34 +523,34 @@ AC_TRY_COMPILE([#include <sys/types.h>
+ #ifdef WEXITSTATUS
+ y = WEXITSTATUS(x);
+ #endif
+-],AC_DEFINE(BSDWAIT))
++],AC_DEFINE([BSDWAIT],[1],[BSDWAIT]))
+
+ if test -z "$butterfly"; then
+ AC_CHECKING(for termio or termios)
+-AC_TRY_CPP([#include <termio.h>], AC_DEFINE(TERMIO),
++AC_TRY_CPP([#include <termio.h>], AC_DEFINE([TERMIO],[1],[TERMIO]),
+ if test -n "$posix"; then
+-AC_TRY_CPP([#include <termios.h>], AC_DEFINE(TERMIO))
++AC_TRY_CPP([#include <termios.h>], AC_DEFINE([TERMIO],[1],[TERMIO]))
+ fi
+ )
+ fi
+
+-dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE(SHADOWPW))
++dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE([SHADOWPW],[1],[SHADOWPW]))
+ AC_CHECKING(getspnam)
+-AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE(SHADOWPW))
++AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE([SHADOWPW],[1],[SHADOWPW]))
+
+ AC_CHECKING(getttyent)
+-AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
++AC_TRY_LINK(,[getttyent();], AC_DEFINE([GETTTYENT],[1],[GETTTYENT]))
+
+ AC_CHECKING(fdwalk)
+-AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
++AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE([HAVE_FDWALK],[1],[HAVE_FDWALK]))
+
+ AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
+-AC_DEFINE(USEBCOPY)
++AC_DEFINE([USEBCOPY],[1],[USEBCOPY])
+
+-AC_DEFINE(USEMEMMOVE)
++AC_DEFINE([USEMEMMOVE],[1],[USEMEMMOVE])
+
+
+-AC_DEFINE(USEMEMCPY)
++AC_DEFINE([USEMEMCPY],[1],[USEMEMCPY])
+
+ AC_MSG_CHECKING(long file names)
+ (echo 1 > /tmp/conftest9012345) 2>/dev/null
+@@ -560,25 +560,25 @@ if test -f /tmp/conftest9012345 && test "$val" = 1; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+-AC_DEFINE(NAME_MAX, 14)
++AC_DEFINE(NAME_MAX, 14,[NAME_MAX])
+ fi
+ rm -f /tmp/conftest*
+
+ AC_MSG_CHECKING(for vsprintf)
+-AC_TRY_LINK(,[vsprintf(0,0,0);], 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],[1],[USEVARARGS]), AC_MSG_RESULT(no))
+
+ AC_HEADER_DIRENT
+
+ AC_MSG_CHECKING(for setenv)
+-AC_TRY_LINK(,[setenv((char *)0,(char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes);AC_DEFINE(USESETENV),
++AC_TRY_LINK(,[setenv((char *)0,(char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes);AC_DEFINE([USESETENV],[1],[USESETENV]),
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING(for putenv)
+-AC_TRY_LINK(,[putenv((char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes) , AC_MSG_RESULT(no);AC_DEFINE(NEEDPUTENV)
++AC_TRY_LINK(,[putenv((char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes) , AC_MSG_RESULT(no);AC_DEFINE([NEEDPUTENV],[1],[NEEDPUTENV])
+ ))
+ AC_MSG_CHECKING([for nl_langinfo(CODESET)])
+ AC_TRY_LINK([
+ #include <langinfo.h>
+-],[nl_langinfo(CODESET);], AC_MSG_RESULT(yes);AC_DEFINE(HAVE_NL_LANGINFO), AC_MSG_RESULT(no))
++],[nl_langinfo(CODESET);], AC_MSG_RESULT(yes);AC_DEFINE([HAVE_NL_LANGINFO],[1],[HAVE_NL_LANGINFO]), AC_MSG_RESULT(no))
+
+ AC_SEARCH_LIBS(gethostname, nsl)
+
+@@ -593,25 +593,25 @@ if test "$enable_pam" = "yes"; then
+ pam_start(0, 0, 0, 0);
+ pam_authenticate(0, 0);
+ pam_end(0,0);
+- ], AC_MSG_RESULT(yes);AC_DEFINE(USE_PAM),
++ ], AC_MSG_RESULT(yes);AC_DEFINE([USE_PAM],[1],[USE_PAM]),
+ AC_MSG_RESULT(no);LIBS="$oldlibs")
+ fi
+
+ AC_ARG_ENABLE(use_locale, [ --enable-locale use localized month/day names])
+ if test "$enable_use_locale" = "yes"; then
+- AC_DEFINE(USE_LOCALE)
++ AC_DEFINE([USE_LOCALE],[1],[USE_LOCALE])
+ fi
+ AC_ARG_ENABLE(telnet, [ --enable-telnet enable builtin telnet])
+ if test "$enable_telnet" = "yes"; then
+- AC_DEFINE(BUILTIN_TELNET)
++ AC_DEFINE([BUILTIN_TELNET],[1],[BUILTIN_TELNET])
+ fi
+ AC_ARG_ENABLE(colors256, [ --enable-colors256 enable support for 256 colors])
+ if test "$enable_colors256" = "yes"; then
+- AC_DEFINE(COLORS256)
++ AC_DEFINE([COLORS256],[1],[COLORS256])
+ fi
+ AC_ARG_ENABLE(rxvt_osc, [ --enable-rxvt_osc enable support for rxvt OSC codes])
+ if test "$enable_rxvt_osc" = "yes"; then
+- AC_DEFINE(RXVT_OSC)
++ AC_DEFINE([RXVT_OSC],[1],[RXVT_OSC])
+ fi
+
+ dnl
+@@ -631,7 +631,7 @@ ETCSCREENRC="\"$prefix/etc/screenrc\""
+ fi
+ AC_MSG_CHECKING(for the global screenrc file)
+ AC_ARG_WITH(sys-screenrc, [ --with-sys-screenrc=path where to put the global screenrc file], [ ETCSCREENRC="\"${withval}\"" ])
+-AC_DEFINE_UNQUOTED(ETCSCREENRC,$ETCSCREENRC)
++AC_DEFINE_UNQUOTED(ETCSCREENRC,$ETCSCREENRC,[ETCSCREENRC])
+ AC_MSG_RESULT($ETCSCREENRC)
+
+ SCREENENCODINGS="\"/usr/local/lib/screen/utf8encodings\""
+@@ -640,7 +640,7 @@ eval SCREENENCODINGS="$datadir/screen/utf8encodings"
+ eval SCREENENCODINGS="\\\"$SCREENENCODINGS\\\""
+ fi
+ AC_MSG_CHECKING(for the utf8-encodings location)
+-AC_DEFINE_UNQUOTED(SCREENENCODINGS,$SCREENENCODINGS)
++AC_DEFINE_UNQUOTED(SCREENENCODINGS,$SCREENENCODINGS,[SCREENENCODINGS])
+ AC_MSG_RESULT($SCREENENCODINGS)
+
+ AC_OUTPUT(Makefile doc/Makefile, [[
+--
+1.7.4.1
+
diff --git a/patches/screen-4.0.3/autogen.sh b/patches/screen-4.0.3/autogen.sh
new file mode 100755
index 000000000..9e73c8d20
--- /dev/null
+++ b/patches/screen-4.0.3/autogen.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+autoconf \
+ --force \
+ --warnings=cross \
+ --warnings=syntax \
+ --warnings=obsolete \
+ --warnings=unsupported
+
diff --git a/patches/screen-4.0.3/series b/patches/screen-4.0.3/series
new file mode 100644
index 000000000..92c8f7c8f
--- /dev/null
+++ b/patches/screen-4.0.3/series
@@ -0,0 +1,6 @@
+# generated by git-ptx-patches
+0001-don-t-link-against-libelf.patch
+0002-remove-configure-AC_TRY_RUN-tests.patch
+0003-Fix-screenencodings-dir.patch
+0004-autoconf-cleanup.patch
+# 281c2731ef1fdac0a3c30983673cb6c8 - git-ptx-patches magic