summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNigel Kukard <nkukard@lbsd.net>2008-05-01 19:33:44 +0000
committerNigel Kukard <nkukard@lbsd.net>2008-05-01 19:33:44 +0000
commitbce15df3bea6d1ab4a88db9d31fc2dd30418decc (patch)
tree6617f7fa11d9509ef1df6b837c8f27daeb5a603f
parent47cb1237188a854f4f8e8f8ea35f4a62f450b77b (diff)
* Added screen
The cross compile fix is unavoidable
-rw-r--r--package/Config.in1
-rw-r--r--package/screen/Config.in13
-rw-r--r--package/screen/screen-4.0.2-cross_compile_fix.patch524
-rw-r--r--package/screen/screen-4.0.2_install-fix.patch17
-rw-r--r--package/screen/screen.mk17
5 files changed, 572 insertions, 0 deletions
diff --git a/package/Config.in b/package/Config.in
index 68c85e397..70eeded24 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -107,6 +107,7 @@ endif
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/rpm/Config.in"
endif
+source "package/screen/Config.in"
source "package/sqlite/Config.in"
source "package/startup-notification/Config.in"
source "package/strace/Config.in"
diff --git a/package/screen/Config.in b/package/screen/Config.in
new file mode 100644
index 000000000..03407b709
--- /dev/null
+++ b/package/screen/Config.in
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_SCREEN
+ bool "screen"
+ default n
+ select BR2_PACKAGE_NCURSES
+ help
+ Screen is a full-screen window manager that multiplexes a physical
+ terminal between several processes, typically interactive shells.
+ Each virtual terminal provides the functions of the DEC VT100
+ terminal and, in addition, several control functions from the ANSI
+ X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line
+ and support for multiple character sets).
+
+ http://www.gnu.org/software/screen/
diff --git a/package/screen/screen-4.0.2-cross_compile_fix.patch b/package/screen/screen-4.0.2-cross_compile_fix.patch
new file mode 100644
index 000000000..17f05e57c
--- /dev/null
+++ b/package/screen/screen-4.0.2-cross_compile_fix.patch
@@ -0,0 +1,524 @@
+--- a/configure.orig 2003-12-05 14:46:53.000000000 +0100
++++ b/configure 2007-07-28 12:45:19.000000000 +0200
+@@ -124,7 +124,7 @@
+ fi
+ if test ! -f "$as_myself"; then
+ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ case $CONFIG_SHELL in
+ '')
+@@ -174,7 +174,7 @@
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+- { (exit 1); exit 1; }; }
++ }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+@@ -397,7 +397,7 @@
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+- { (exit 1); exit 1; }; }
++ }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ eval "enable_$ac_feature=no" ;;
+
+@@ -406,7 +406,7 @@
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+- { (exit 1); exit 1; }; }
++ }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+@@ -588,7 +588,7 @@
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+- { (exit 1); exit 1; }; }
++ }
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+@@ -601,7 +601,7 @@
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+- { (exit 1); exit 1; }; }
++ }
+ ac_package=`echo $ac_package | sed 's/-/_/g'`
+ eval "with_$ac_package=no" ;;
+
+@@ -625,7 +625,7 @@
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+ Try \`$0 --help' for more information." >&2
+- { (exit 1); exit 1; }; }
++ }
+ ;;
+
+ *=*)
+@@ -633,7 +633,7 @@
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+- { (exit 1); exit 1; }; }
++ }
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+@@ -652,7 +652,7 @@
+ if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+- { (exit 1); exit 1; }; }
++ }
+ fi
+
+ # Be sure to have absolute paths.
+@@ -662,7 +662,7 @@
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+- { (exit 1); exit 1; }; };;
++ };;
+ esac
+ done
+
+@@ -674,7 +674,7 @@
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+- { (exit 1); exit 1; }; };;
++ };;
+ esac
+ done
+
+@@ -728,15 +728,15 @@
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+- { (exit 1); exit 1; }; }
++ }
+ else
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ fi
+ (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+- { (exit 1); exit 1; }; }
++ }
+ srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ ac_env_build_alias_set=${build_alias+set}
+ ac_env_build_alias_value=$build_alias
+@@ -1243,7 +1243,7 @@
+ echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+
+ ac_ext=c
+@@ -1734,7 +1734,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: no acceptable C compiler found in \$PATH
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+
+ # Provide some information about the compiler.
+ echo "$as_me:$LINENO:" \
+@@ -1856,7 +1856,7 @@
+ echo "$as_me: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'.
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ fi
+ fi
+@@ -1898,7 +1898,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+
+ rm -f conftest$ac_cv_exeext
+@@ -1950,7 +1950,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot compute suffix of object files: cannot compile
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+@@ -2514,7 +2514,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+
+ ac_ext=c
+@@ -2704,7 +2704,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -2753,7 +2753,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -2790,7 +2790,7 @@
+
+ { { echo "$as_me:$LINENO: error: Can't run the compiler - sorry" >&5
+ echo "$as_me: error: Can't run the compiler - sorry" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+@@ -2800,7 +2800,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -2830,7 +2830,7 @@
+ (exit $ac_status); }; }; then
+ { { echo "$as_me:$LINENO: error: Your compiler does not set the exit status - sorry" >&5
+ echo "$as_me: error: Your compiler does not set the exit status - sorry" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+@@ -2900,7 +2900,7 @@
+ if test -z "$ac_aux_dir"; then
+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+@@ -4149,7 +4149,7 @@
+
+ { { echo "$as_me:$LINENO: error: !!! no select - no screen" >&5
+ echo "$as_me: error: !!! no select - no screen" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+@@ -4163,7 +4163,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -4272,7 +4272,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -4365,7 +4365,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -4460,7 +4460,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -4562,7 +4562,7 @@
+ else
+ { { echo "$as_me:$LINENO: error: you have neither usable sockets nor usable pipes -> no screen" >&5
+ echo "$as_me: error: you have neither usable sockets nor usable pipes -> no screen" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+
+
+@@ -4573,7 +4573,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -4898,7 +4898,7 @@
+
+ { { echo "$as_me:$LINENO: error: !!! no tgetent - no screen" >&5
+ echo "$as_me: error: !!! no tgetent - no screen" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+@@ -4915,7 +4915,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -5359,7 +5359,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -6206,7 +6206,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -6482,7 +6482,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -6598,8 +6598,6 @@
+ LIBS="$oldlibs"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-test -f /lib/libsec.a || test -f /usr/lib/libsec.a && LIBS="$LIBS -lsec"
+-test -f /lib/libshadow.a || test -f /usr/lib/libshadow.a && LIBS="$LIBS -lshadow"
+ oldlibs="$LIBS"
+ LIBS="$LIBS -lsun"
+ { echo "$as_me:$LINENO: checking IRIX sun library..." >&5
+@@ -7004,7 +7002,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -7056,7 +7054,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -7110,7 +7108,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -7951,7 +7949,7 @@
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line $LINENO "configure"
+@@ -7982,7 +7980,7 @@
+ ( exit $ac_status )
+ { { echo "$as_me:$LINENO: error: Can't run the compiler - internal error. Sorry." >&5
+ echo "$as_me: error: Can't run the compiler - internal error. Sorry." >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+@@ -8251,7 +8249,7 @@
+ if test ! -f "$as_myself"; then
+ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+ echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi
+ case $CONFIG_SHELL in
+ '')
+@@ -8302,7 +8300,7 @@
+ chmod +x $as_me.lineno ||
+ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+ echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+@@ -8494,7 +8492,7 @@
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&2;}
+- { (exit 1); exit 1; }; };;
++ };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+@@ -8516,7 +8514,7 @@
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+- { (exit 1); exit 1; }; } ;;
++ } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+@@ -8555,7 +8553,7 @@
+ "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+- { (exit 1); exit 1; }; };;
++ };;
+ esac
+ done
+
+@@ -8750,7 +8748,7 @@
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+- { (exit 1); exit 1; }; }; }
++ }; }
+
+ ac_builddir=.
+
+@@ -8816,7 +8814,7 @@
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ echo $f;;
+ *) # Relative
+ if test -f "$f"; then
+@@ -8829,7 +8827,7 @@
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+@@ -8907,7 +8905,7 @@
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ echo $f;;
+ *) # Relative
+ if test -f "$f"; then
+@@ -8920,7 +8918,7 @@
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+- { (exit 1); exit 1; }; }
++ }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+@@ -9073,7 +9071,7 @@
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+- { (exit 1); exit 1; }; }; }
++ }; }
+
+ rm -f $ac_file
+ mv $tmp/config.h $ac_file
+--- a/pty.c.orig 2003-09-08 16:26:18.000000000 +0200
++++ b/pty.c 2007-07-28 12:45:19.000000000 +0200
+@@ -34,9 +34,9 @@
+ #endif
+
+ /* for solaris 2.1, Unixware (SVR4.2) and possibly others */
+-#ifdef HAVE_SVR4_PTYS
+-# include <sys/stropts.h>
+-#endif
++//#ifdef HAVE_SVR4_PTYS
++//# include <sys/stropts.h>
++//#endif
+
+ #if defined(sun) && defined(LOCKPTY) && !defined(TIOCEXCL)
+ # include <sys/ttold.h>
+--- a/sched.h.orig 2002-01-08 16:42:43.000000000 +0100
++++ b/sched.h 2007-07-28 12:45:19.000000000 +0200
+@@ -22,6 +22,11 @@
+ * $Id: sched.h,v 1.1.1.1 1993/06/16 23:51:13 jnweiger Exp $ FAU
+ */
+
++#ifndef __SCHED_H
++#define __SCHED_H
++
++#include <sys/time.h>
++
+ struct event
+ {
+ struct event *next;
+@@ -41,3 +46,5 @@
+ #define EV_READ 1
+ #define EV_WRITE 2
+ #define EV_ALWAYS 3
++
++#endif
diff --git a/package/screen/screen-4.0.2_install-fix.patch b/package/screen/screen-4.0.2_install-fix.patch
new file mode 100644
index 000000000..e56458f2b
--- /dev/null
+++ b/package/screen/screen-4.0.2_install-fix.patch
@@ -0,0 +1,17 @@
+diff -ru screen-4.0.2_vanilla/Makefile.in screen-4.0.2_install-fix/Makefile.in
+--- screen-4.0.2_vanilla/Makefile.in 2003-12-05 13:59:39.000000000 +0000
++++ screen-4.0.2_install-fix/Makefile.in 2008-05-01 10:47:49.000000000 +0000
+@@ -74,11 +74,12 @@
+ -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \
+ then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi
+ $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
+- -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
++ -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
+ # This doesn't work if $(bindir)/screen is a symlink
+ -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi
+ rm -f $(DESTDIR)$(bindir)/screen
+ (cd $(DESTDIR)$(bindir) && ln -sf $(SCREEN) screen)
++ mkdir -p $(DESTDIR)$(SCREENENCODINGS)
+ cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
+
+ ###############################################################################
diff --git a/package/screen/screen.mk b/package/screen/screen.mk
new file mode 100644
index 000000000..7159b038b
--- /dev/null
+++ b/package/screen/screen.mk
@@ -0,0 +1,17 @@
+#############################################################
+#
+# screen
+#
+#############################################################
+SCREEN_VERSION = 4.0.2
+SCREEN_SITE = $(BR2_GNU_MIRROR)/screen
+
+SCREEN_DEPENDENCIES = ncurses
+
+SCREEN_CONF_ENV = CFLAGS=-DSYSV=1
+
+SCREEN_MAKE_OPT = -j1
+
+SCREEN_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) SCREEN=screen install_bin
+
+$(eval $(call AUTOTARGETS,package,screen))