Added screen.
This commit is contained in:
		
				
					committed by
					
						 Pedro Gonçalves
						Pedro Gonçalves
					
				
			
			
				
	
			
			
			
						parent
						
							3314f83868
						
					
				
				
					commit
					fa4ba223cf
				
			
							
								
								
									
										59
									
								
								rules/screen/default.bash
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								rules/screen/default.bash
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| version=\ | ||||
| ( | ||||
|   "4.5.0" | ||||
| ) | ||||
|  | ||||
| url=\ | ||||
| ( | ||||
|   "http://ftp.gnu.org/gnu/screen/screen-$version.tar.gz" | ||||
| ) | ||||
|  | ||||
| md5=\ | ||||
| ( | ||||
|   "a32105a91359afab1a4349209a028e31" | ||||
| ) | ||||
|  | ||||
| requires=\ | ||||
| ( | ||||
|   "ncurses/default" | ||||
| ) | ||||
|  | ||||
| post_unpack() | ||||
| { | ||||
|   patches=$(ls "$pkg_dir"/patches/*.patch) | ||||
|   if [ -n "$patches" ]; then | ||||
|       cat $patches | patch -p1 | ||||
|   fi | ||||
|  | ||||
|   autoconf | ||||
|   aclocal | ||||
| } | ||||
|  | ||||
| configure() | ||||
| { | ||||
|   ./configure \ | ||||
|         --target="$cfg_target_canonical" \ | ||||
|         --host="$cfg_target_canonical" \ | ||||
|         --build="$cfg_host_canonical" \ | ||||
|         --prefix="$cfg_dir_toolchain_sysroot/usr" \ | ||||
|         --enable-colors256 | ||||
| } | ||||
|  | ||||
| build() | ||||
| { | ||||
|   $cmd_make | ||||
| } | ||||
|  | ||||
| host_install() | ||||
| { | ||||
|   $cmd_make install | ||||
| } | ||||
|  | ||||
| target_install() | ||||
| { | ||||
|   $cmd_cp  $cfg_dir_toolchain_sysroot/usr/share/screen $cfg_dir_rootfs/usr/share/ | ||||
|   $cmd_cp  $cfg_dir_toolchain_sysroot/usr/bin/screen-$version $cfg_dir_rootfs/usr/bin/screen | ||||
|   $cmd_cp  etc/screenrc $cfg_dir_rootfs/etc/screenrc | ||||
| } | ||||
|  | ||||
|  | ||||
							
								
								
									
										62
									
								
								rules/screen/patches/0001-compiler-sanity-checks.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								rules/screen/patches/0001-compiler-sanity-checks.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Sat, 13 Sep 2014 10:27:27 +0200 | ||||
| Subject: Removed redundant compiler sanity checks | ||||
|  | ||||
| AC_PROG_CC already performs sanity checks. And unlike the removed | ||||
| checks, it does so in a way that supports cross compilation. | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| [Ricardo: rebase on top of 4.3.1] | ||||
| Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> | ||||
| --- | ||||
|  configure.ac | 27 --------------------------- | ||||
|  1 file changed, 27 deletions(-) | ||||
|  | ||||
| diff --git a/configure.ac b/configure.ac | ||||
| index ffe2e37..27690a6 100644 | ||||
| --- a/configure.ac | ||||
| +++ b/configure.ac | ||||
| @@ -48,31 +48,6 @@ AC_PROG_GCC_TRADITIONAL | ||||
|  AC_ISC_POSIX | ||||
|  AC_USE_SYSTEM_EXTENSIONS | ||||
|   | ||||
| -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 | ||||
| @@ -1300,8 +1275,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= | ||||
|  AC_MSG_CHECKING(for the global screenrc file) | ||||
|  AC_ARG_WITH(sys-screenrc, [  --with-sys-screenrc=path to the global screenrc file], [ ETCSCREENRC="${withval}" ]) | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										124
									
								
								rules/screen/patches/0002-no-memcpy-fallback.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								rules/screen/patches/0002-no-memcpy-fallback.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,124 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Sat, 13 Sep 2014 11:37:59 +0200 | ||||
| Subject: Do not use memcpy as an alternative for bcopy/memmove | ||||
|  | ||||
| The configure script runs a small test program to check whether | ||||
| memcpy can handle overlapping memory areas. However, it is not valid | ||||
| to conclude that if a single case of overlapping memory is handled | ||||
| correctly, all cases will be handled correctly. | ||||
|  | ||||
| Since screen already has its own bcopy implementation as a fallback | ||||
| for the case that bcopy and memmove are unusable, removing the memcpy | ||||
| option should not break any systems. | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| [Ricardo: rebase on top of 4.3.1] | ||||
| Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> | ||||
| --- | ||||
|  acconfig.h   |  3 +-- | ||||
|  configure.ac | 18 +----------------- | ||||
|  os.h         |  8 ++------ | ||||
|  osdef.h.in   | 10 +--------- | ||||
|  4 files changed, 5 insertions(+), 34 deletions(-) | ||||
|  | ||||
| diff --git a/acconfig.h b/acconfig.h | ||||
| index 2e46985..9b0b9d4 100644 | ||||
| --- a/acconfig.h | ||||
| +++ b/acconfig.h | ||||
| @@ -476,7 +476,7 @@ | ||||
|  #undef GETTTYENT | ||||
|   | ||||
|  /* | ||||
| - * Define USEBCOPY if the bcopy/memcpy from your system's C library | ||||
| + * Define USEBCOPY if the bcopy from your system's C library | ||||
|   * supports the overlapping of source and destination blocks.  When | ||||
|   * undefined, screen uses its own (probably slower) version of bcopy(). | ||||
|   *  | ||||
| @@ -487,7 +487,6 @@ | ||||
|   * Their memove fails the test in the configure script. Sigh. (Juergen) | ||||
|   */ | ||||
|  #undef USEBCOPY | ||||
| -#undef USEMEMCPY | ||||
|  #undef USEMEMMOVE | ||||
|   | ||||
|  /* | ||||
| diff --git a/configure.ac b/configure.ac | ||||
| index 27690a6..b8e3bec 100644 | ||||
| --- a/configure.ac | ||||
| +++ b/configure.ac | ||||
| @@ -1145,7 +1145,7 @@ AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT)) | ||||
|  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_CHECKING(whether memmove/bcopy handles overlapping arguments) | ||||
|  AC_TRY_RUN([ | ||||
|  main() { | ||||
|    char buf[10]; | ||||
| @@ -1175,22 +1175,6 @@ main() { | ||||
|    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_SYS_LONG_FILE_NAMES | ||||
|   | ||||
|  AC_MSG_CHECKING(for vsprintf) | ||||
| diff --git a/os.h b/os.h | ||||
| index e827ac9..0b41fb9 100644 | ||||
| --- a/os.h | ||||
| +++ b/os.h | ||||
| @@ -142,12 +142,8 @@ extern int errno; | ||||
|  # ifdef USEMEMMOVE | ||||
|  #  define bcopy(s,d,len) memmove(d,s,len) | ||||
|  # else | ||||
| -#  ifdef USEMEMCPY | ||||
| -#   define bcopy(s,d,len) memcpy(d,s,len) | ||||
| -#  else | ||||
| -#   define NEED_OWN_BCOPY | ||||
| -#   define bcopy xbcopy | ||||
| -#  endif | ||||
| +#  define NEED_OWN_BCOPY | ||||
| +#  define bcopy xbcopy | ||||
|  # endif | ||||
|  #endif | ||||
|   | ||||
| diff --git a/osdef.h.in b/osdef.h.in | ||||
| index 8687b60..e4057a0 100644 | ||||
| --- a/osdef.h.in | ||||
| +++ b/osdef.h.in | ||||
| @@ -58,16 +58,8 @@ extern int   bcmp __P((char *, char *, int)); | ||||
|  extern int   killpg __P((int, int)); | ||||
|  #endif | ||||
|   | ||||
| -#ifndef USEBCOPY | ||||
| -# ifdef USEMEMCPY | ||||
| -extern void  memcpy __P((char *, char *, int)); | ||||
| -# else | ||||
| -#  ifdef USEMEMMOVE | ||||
| +#if defined(USEMEMMOVE) && !defined(USEBCOPY) | ||||
|  extern void  memmove __P((char *, char *, int)); | ||||
| -#  else | ||||
| -extern void  bcopy __P((char *, char *, int)); | ||||
| -#  endif | ||||
| -# endif | ||||
|  #else | ||||
|  extern void  bcopy __P((char *, char *, int)); | ||||
|  #endif | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										125
									
								
								rules/screen/patches/0003-cross-compilation-AC_TRY_RUN.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								rules/screen/patches/0003-cross-compilation-AC_TRY_RUN.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,125 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Sat, 13 Sep 2014 12:04:41 +0200 | ||||
| Subject: Provide cross compilation alternatives for all AC_TRY_RUN uses | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| [Ricardo: rebase on top of 4.3.1] | ||||
| Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> | ||||
| --- | ||||
|  configure.ac | 30 +++++++++++++++++++----------- | ||||
|  1 file changed, 19 insertions(+), 11 deletions(-) | ||||
|  | ||||
| diff --git a/configure.ac b/configure.ac | ||||
| index b8e3bec..c4b7cd4 100644 | ||||
| --- a/configure.ac | ||||
| +++ b/configure.ac | ||||
| @@ -348,7 +348,8 @@ main() | ||||
|    exit(0); | ||||
|  } | ||||
|  ], AC_NOTE(- your fifos are usable) fifo=1, | ||||
| -AC_NOTE(- your fifos are not usable)) | ||||
| +AC_NOTE(- your fifos are not usable), | ||||
| +AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1) | ||||
|  rm -f /tmp/conftest* | ||||
|   | ||||
|  if test -n "$fifo"; then | ||||
| @@ -396,7 +397,8 @@ main() | ||||
|    exit(0); | ||||
|  } | ||||
|  ], AC_NOTE(- your implementation is ok),  | ||||
| -AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1) | ||||
| +AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1, | ||||
| +AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok)) | ||||
|  rm -f /tmp/conftest* | ||||
|  fi | ||||
|   | ||||
| @@ -458,7 +460,8 @@ main() | ||||
|    exit(0); | ||||
|  } | ||||
|  ], AC_NOTE(- your sockets are usable) sock=1, | ||||
| -AC_NOTE(- your sockets are not usable)) | ||||
| +AC_NOTE(- your sockets are not usable), | ||||
| +AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1) | ||||
|  rm -f /tmp/conftest* | ||||
|   | ||||
|  if test -n "$sock"; then | ||||
| @@ -497,7 +500,8 @@ main() | ||||
|  } | ||||
|  ],AC_NOTE(- you are normal), | ||||
|  AC_NOTE(- unix domain sockets are not kept in the filesystem) | ||||
| -AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1) | ||||
| +AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1, | ||||
| +AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal)) | ||||
|  rm -f /tmp/conftest* | ||||
|  fi | ||||
|   | ||||
| @@ -624,7 +628,8 @@ main() | ||||
|    exit(0); | ||||
|  } | ||||
|  ],AC_NOTE(- select is ok), | ||||
| -AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN)) | ||||
| +AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN), | ||||
| +AC_NOTE(- skipping check because we are cross compiling; assuming select is ok)) | ||||
|   | ||||
|  dnl | ||||
|  dnl    ****  termcap or terminfo  **** | ||||
| @@ -666,7 +671,8 @@ 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_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO), | ||||
| +AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO)) | ||||
|  AC_CHECKING(ospeed) | ||||
|  AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) | ||||
|   | ||||
| @@ -801,7 +807,8 @@ main() | ||||
|      else | ||||
|        AC_NOTE(- can't determine - assume ptys are world accessable) | ||||
|      fi | ||||
| -  ] | ||||
| +  ], | ||||
| +  AC_NOTE(- skipping check because we are cross compiling; assuming ptys are world accessable) | ||||
|  ) | ||||
|  rm -f conftest_grp | ||||
|  fi | ||||
| @@ -885,7 +892,7 @@ AC_EGREP_CPP(yes, | ||||
|  #endif | ||||
|  ], load=1) | ||||
|  fi | ||||
| -if test -z "$load" ; then | ||||
| +if test -z "$load" && test "$cross_compiling" = no ; 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 | ||||
| @@ -1078,7 +1085,7 @@ main() | ||||
|  #endif | ||||
|    exit(0); | ||||
|  } | ||||
| -],,AC_DEFINE(SYSVSIGS)) | ||||
| +],,AC_DEFINE(SYSVSIGS),:) | ||||
|   | ||||
|  fi | ||||
|   | ||||
| @@ -1158,7 +1165,7 @@ main() { | ||||
|    if (strncmp(buf, "cdedef", 6)) | ||||
|      exit(1); | ||||
|    exit(0); /* libc version works properly.  */ | ||||
| -}], AC_DEFINE(USEBCOPY)) | ||||
| +}], AC_DEFINE(USEBCOPY),,:) | ||||
|   | ||||
|  AC_TRY_RUN([ | ||||
|  #define bcopy(s,d,l) memmove(d,s,l) | ||||
| @@ -1173,7 +1180,8 @@ main() { | ||||
|    if (strncmp(buf, "cdedef", 6)) | ||||
|      exit(1); | ||||
|    exit(0); /* libc version works properly.  */ | ||||
| -}], AC_DEFINE(USEMEMMOVE)) | ||||
| +}], AC_DEFINE(USEMEMMOVE),, | ||||
| +  AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE)) | ||||
|   | ||||
|  AC_SYS_LONG_FILE_NAMES | ||||
|   | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										132
									
								
								rules/screen/patches/0004-cross-compilation-ignore-host-fs.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								rules/screen/patches/0004-cross-compilation-ignore-host-fs.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,132 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Sun, 14 Sep 2014 07:10:59 +0200 | ||||
| Subject: When cross-compiling, skip checks that look in the host file system | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| [Ricardo: rebase on top of 4.3.1] | ||||
| Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> | ||||
| --- | ||||
|  configure.ac | 23 +++++++++++++++++++---- | ||||
|  1 file changed, 19 insertions(+), 4 deletions(-) | ||||
|  | ||||
| diff --git a/configure.ac b/configure.ac | ||||
| index c4b7cd4..9cf7cee 100644 | ||||
| --- a/configure.ac | ||||
| +++ b/configure.ac | ||||
| @@ -85,7 +85,7 @@ AC_ARG_ENABLE(socket-dir, | ||||
|  dnl | ||||
|  dnl    ****  special unix variants  **** | ||||
|  dnl | ||||
| -if test -n "$ISC"; then | ||||
| +if test "$cross_compiling" = no && test -n "$ISC" ; then | ||||
|    AC_DEFINE(ISC) LIBS="$LIBS -linet" | ||||
|  fi | ||||
|   | ||||
| @@ -96,10 +96,11 @@ dnl AC_DEFINE(OSF1)	# this disables MIPS again.... | ||||
|  dnl fi | ||||
|  dnl fi | ||||
|   | ||||
| -if test -f /sysV68 ; then | ||||
| +if test "$cross_compiling" = no && test -f /sysV68 ; then | ||||
|  AC_DEFINE(sysV68) | ||||
|  fi | ||||
|   | ||||
| +if test "$cross_compiling" = no ; then | ||||
|  AC_CHECKING(for MIPS) | ||||
|  if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then | ||||
|  oldlibs="$LIBS" | ||||
| @@ -123,6 +124,7 @@ AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd" | ||||
|  )) | ||||
|  fi | ||||
|  fi | ||||
| +fi | ||||
|   | ||||
|   | ||||
|  AC_CHECKING(for Ultrix) | ||||
| @@ -132,7 +134,7 @@ AC_EGREP_CPP(yes, | ||||
|  #endif | ||||
|  ], ULTRIX=1) | ||||
|   | ||||
| -if test -f /usr/lib/libpyr.a ; then | ||||
| +if test "$cross_compiling" = no && test -f /usr/lib/libpyr.a ; then | ||||
|  oldlibs="$LIBS" | ||||
|  LIBS="$LIBS -lpyr" | ||||
|  AC_CHECKING(Pyramid OSX) | ||||
| @@ -679,17 +681,21 @@ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) | ||||
|  dnl | ||||
|  dnl    ****  PTY specific things  **** | ||||
|  dnl | ||||
| +if test "$cross_compiling" = no ; then | ||||
|  AC_CHECKING(for /dev/ptc) | ||||
|  if test -r /dev/ptc; then | ||||
|  AC_DEFINE(HAVE_DEV_PTC) | ||||
|  fi | ||||
| +fi | ||||
|   | ||||
| +if test "$cross_compiling" = no ; then | ||||
|  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) | ||||
|  sysvr4ptys=1]) | ||||
|  fi | ||||
| +fi | ||||
|   | ||||
|  AC_CHECK_FUNCS(getpt) | ||||
|   | ||||
| @@ -699,6 +705,7 @@ AC_CHECK_FUNCS(openpty,, | ||||
|  [AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])]) | ||||
|  fi | ||||
|   | ||||
| +if test "$cross_compiling" = no ; then | ||||
|  AC_CHECKING(for ptyranges) | ||||
|  if test -d /dev/ptym ; then | ||||
|  pdir='/dev/ptym' | ||||
| @@ -722,6 +729,7 @@ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g'  | sort -u | tr -d '\ | ||||
|  AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0") | ||||
|  AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1") | ||||
|  fi | ||||
| +fi | ||||
|   | ||||
|  dnl    ****  pty mode/group handling **** | ||||
|  dnl | ||||
| @@ -869,14 +877,16 @@ fi | ||||
|  dnl | ||||
|  dnl    ****  loadav  **** | ||||
|  dnl | ||||
| +if test "$cross_compiling" = no ; then | ||||
|  AC_CHECKING(for libutil(s)) | ||||
|  test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils" | ||||
|  test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil" | ||||
| +fi | ||||
|   | ||||
|  AC_CHECKING(getloadavg) | ||||
|  AC_TRY_LINK(,[getloadavg((double *)0, 0);], | ||||
|  AC_DEFINE(LOADAV_GETLOADAVG) load=1, | ||||
| -if test -f /usr/lib/libkvm.a ; then | ||||
| +if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then | ||||
|  olibs="$LIBS" | ||||
|  LIBS="$LIBS -lkvm" | ||||
|  AC_CHECKING(getloadavg with -lkvm) | ||||
| @@ -1094,13 +1104,18 @@ dnl    ****  libraries  **** | ||||
|  dnl | ||||
|   | ||||
|  AC_CHECKING(for crypt and sec libraries) | ||||
| +if test "$cross_compiling" = no ; then | ||||
|  test -f /lib/libcrypt_d.a || test -f /usr/lib/libcrypt_d.a && LIBS="$LIBS -lcrypt_d" | ||||
| +fi | ||||
|  oldlibs="$LIBS" | ||||
|  LIBS="$LIBS -lcrypt" | ||||
|  AC_CHECKING(crypt) | ||||
|  AC_TRY_LINK(,,,LIBS="$oldlibs") | ||||
| +if test "$cross_compiling" = no ; then | ||||
|  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" | ||||
| +fi | ||||
| + | ||||
|  oldlibs="$LIBS" | ||||
|  LIBS="$LIBS -lsun" | ||||
|  AC_CHECKING(IRIX sun library) | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										54
									
								
								rules/screen/patches/0005-avoid-identifying-as-SVR4.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								rules/screen/patches/0005-avoid-identifying-as-SVR4.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Sun, 14 Sep 2014 11:16:58 +0200 | ||||
| Subject: Avoid mis-identifying systems as SVR4 | ||||
|  | ||||
| My openSUSE 13.1 Linux system was detected as SVR4 because it had | ||||
| libelf installed. This leads to linking with libelf, even though no | ||||
| symbols from that library were actually used, and to a workaround for | ||||
| a buggy getlogin() being enabled. | ||||
|  | ||||
| It is not documented which exact SVR4 system had the bug that the | ||||
| workaround was added for, so all I could do is make an educated guess | ||||
| at the #defines its compiler would be likely to set. | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| [Ricardo: rebase on top of 4.3.1] | ||||
| Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> | ||||
| --- | ||||
|  configure.ac | 14 ++++++++++++-- | ||||
|  1 file changed, 12 insertions(+), 2 deletions(-) | ||||
|  | ||||
| diff --git a/configure.ac b/configure.ac | ||||
| index 9cf7cee..e09e4cf 100644 | ||||
| --- a/configure.ac | ||||
| +++ b/configure.ac | ||||
| @@ -179,14 +179,24 @@ AC_EGREP_CPP(yes, | ||||
|  #endif | ||||
|  ], LIBS="$LIBS -lsocket -linet";seqptx=1) | ||||
|   | ||||
| +AC_CHECKING(SVR4) | ||||
| +AC_EGREP_CPP(yes, | ||||
| +[main () { | ||||
| +#if defined(SVR4) || defined(__SVR4) | ||||
| +  yes; | ||||
| +#endif | ||||
| +], AC_NOTE(- you have a SVR4 system) AC_DEFINE(SVR4) svr4=1) | ||||
| +if test -n "$svr4" ; then | ||||
|  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))])] | ||||
| +[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(BUGGYGETLOGIN), | ||||
| +[AC_CHECK_HEADER(elf.h, AC_DEFINE(BUGGYGETLOGIN))])] | ||||
|  ,LIBS="$oldlibs") | ||||
| +fi | ||||
| + | ||||
|  AC_CHECK_HEADERS([stropts.h string.h strings.h]) | ||||
|   | ||||
|  AC_CHECKING(for Solaris 2.x) | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										39
									
								
								rules/screen/patches/0006-install-no-backup-binary.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								rules/screen/patches/0006-install-no-backup-binary.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Sun, 14 Sep 2014 23:58:34 +0200 | ||||
| Subject: Do not create backup of old installed binary | ||||
|  | ||||
| This is a rather unusual feature that packagers will not expect. | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| --- | ||||
|  Makefile.in | 4 ---- | ||||
|  1 file changed, 4 deletions(-) | ||||
|  | ||||
| diff --git a/Makefile.in b/Makefile.in | ||||
| index 187a69b..65549e9 100644 | ||||
| --- a/Makefile.in | ||||
| +++ b/Makefile.in | ||||
| @@ -83,12 +83,9 @@ screen: $(OFILES) | ||||
|  	    $(OPTIONS) $(CFLAGS) $< | ||||
|   | ||||
|  install_bin: .version screen | ||||
| -	-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) | ||||
|  # 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 -f -s $(SCREEN) screen) | ||||
|  	cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS) | ||||
| @@ -113,7 +110,6 @@ installdirs: | ||||
|  uninstall: .version | ||||
|  	rm -f $(DESTDIR)$(bindir)/$(SCREEN) | ||||
|  	rm -f $(DESTDIR)$(bindir)/screen | ||||
| -	-mv $(DESTDIR)$(bindir)/screen.old $(DESTDIR)$(bindir)/screen | ||||
|  	rm -f $(DESTDIR)$(ETCSCREENRC) | ||||
|  	cd doc; $(MAKE) uninstall | ||||
|   | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										29
									
								
								rules/screen/patches/0007-install-always-chmod.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								rules/screen/patches/0007-install-always-chmod.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Mon, 15 Sep 2014 00:03:05 +0200 | ||||
| Subject: Change binary permission flags even if chown fails | ||||
|  | ||||
| Typically when creating a package, the build is not run as root, so | ||||
| the chown will fail. But the chmod can still be done. | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| --- | ||||
|  Makefile.in | 3 ++- | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
|  | ||||
| diff --git a/Makefile.in b/Makefile.in | ||||
| index 65549e9..3c12fdb 100644 | ||||
| --- a/Makefile.in | ||||
| +++ b/Makefile.in | ||||
| @@ -84,7 +84,8 @@ screen: $(OFILES) | ||||
|   | ||||
|  install_bin: .version screen | ||||
|  	$(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN) | ||||
| -	-chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) | ||||
| +	-chown root $(DESTDIR)$(bindir)/$(SCREEN) | ||||
| +	-chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) | ||||
|  # This doesn't work if $(bindir)/screen is a symlink | ||||
|  	rm -f $(DESTDIR)$(bindir)/screen | ||||
|  	(cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen) | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										31
									
								
								rules/screen/patches/0008-install-nonversioned-binary.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								rules/screen/patches/0008-install-nonversioned-binary.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Mon, 15 Sep 2014 00:06:20 +0200 | ||||
| Subject: Support overriding SCREEN to get a non-versioned binary | ||||
|  | ||||
| If a packager runs "make install SCREEN=screen", do not create | ||||
| "screen" as a symlink to itself. | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| --- | ||||
|  Makefile.in | 2 ++ | ||||
|  1 file changed, 2 insertions(+) | ||||
|  | ||||
| diff --git a/Makefile.in b/Makefile.in | ||||
| index 3c12fdb..860f351 100644 | ||||
| --- a/Makefile.in | ||||
| +++ b/Makefile.in | ||||
| @@ -86,9 +86,11 @@ install_bin: .version screen | ||||
|  	$(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN) | ||||
|  	-chown root $(DESTDIR)$(bindir)/$(SCREEN) | ||||
|  	-chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) | ||||
| +ifneq (${SCREEN},screen) | ||||
|  # This doesn't work if $(bindir)/screen is a symlink | ||||
|  	rm -f $(DESTDIR)$(bindir)/screen | ||||
|  	(cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen) | ||||
| +endif | ||||
|  	cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS) | ||||
|   | ||||
|  ############################################################################### | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										43
									
								
								rules/screen/patches/0009-install-dir-dependency.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								rules/screen/patches/0009-install-dir-dependency.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Mon, 15 Sep 2014 02:27:09 +0200 | ||||
| Subject: Ensure that installation dirs exist before copying files into them | ||||
|  | ||||
| Since the "install_bin" target requires the installation directories | ||||
| to exist, it should depend on the "installdirs" target. The previous | ||||
| approach of having "install" depend on "installdirs" is not reliable. | ||||
|  | ||||
| For example, in a parallel build, there was no guarantee that | ||||
| "installdirs" would be finished before "install_bin" runs. Also if | ||||
| the user requested only "install_bin" to be made, "installdirs" would | ||||
| be skipped altogether. | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| --- | ||||
|  Makefile.in | 4 ++-- | ||||
|  1 file changed, 2 insertions(+), 2 deletions(-) | ||||
|  | ||||
| diff --git a/Makefile.in b/Makefile.in | ||||
| index 860f351..f0fe08d 100644 | ||||
| --- a/Makefile.in | ||||
| +++ b/Makefile.in | ||||
| @@ -82,7 +82,7 @@ screen: $(OFILES) | ||||
|  	$(CC) -c -I. -I$(srcdir) $(M_CFLAGS) $(CPPFLAGS) $(DEFS) \ | ||||
|  	    $(OPTIONS) $(CFLAGS) $< | ||||
|   | ||||
| -install_bin: .version screen | ||||
| +install_bin: .version screen installdirs | ||||
|  	$(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN) | ||||
|  	-chown root $(DESTDIR)$(bindir)/$(SCREEN) | ||||
|  	-chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) | ||||
| @@ -94,7 +94,7 @@ endif | ||||
|  	cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS) | ||||
|   | ||||
|  ############################################################################### | ||||
| -install: installdirs install_bin | ||||
| +install: install_bin | ||||
|  	cd doc ; $(MAKE) install | ||||
|  	-if [ -d /usr/lib/terminfo ]; then \ | ||||
|  		PATH="$$PATH:/usr/5bin" tic ${srcdir}/terminfo/screeninfo.src; \ | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
							
								
								
									
										142
									
								
								rules/screen/patches/0010-rename-sched_h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								rules/screen/patches/0010-rename-sched_h.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,142 @@ | ||||
| From: Maarten ter Huurne <maarten@treewalker.org> | ||||
| Date: Mon, 15 Sep 2014 00:24:41 +0200 | ||||
| Subject: Renamed sched.h to eventqueue.h | ||||
|  | ||||
| There is a <sched.h> system header that got shadowed by "sched.h". | ||||
| While Screen itself doesn't include <sched.h>, other system headers | ||||
| might include it indirectly. This broke the build when using uClibc | ||||
| with pthread support. | ||||
|  | ||||
| Signed-off-by: Maarten ter Huurne <maarten@treewalker.org> | ||||
| --- | ||||
|  eventqueue.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ | ||||
|  sched.h      | 48 ------------------------------------------------ | ||||
|  screen.h     |  2 +- | ||||
|  3 files changed, 49 insertions(+), 49 deletions(-) | ||||
|  create mode 100644 eventqueue.h | ||||
|  delete mode 100644 sched.h | ||||
|  | ||||
| diff --git a/eventqueue.h b/eventqueue.h | ||||
| new file mode 100644 | ||||
| index 0000000..fdc3fc4 | ||||
| --- /dev/null | ||||
| +++ b/eventqueue.h | ||||
| @@ -0,0 +1,48 @@ | ||||
| +/* Copyright (c) 2008, 2009 | ||||
| + *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) | ||||
| + *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) | ||||
| + *      Micah Cowan (micah@cowan.name) | ||||
| + *      Sadrul Habib Chowdhury (sadrul@users.sourceforge.net) | ||||
| + * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007 | ||||
| + *      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 3, 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, see | ||||
| + * http://www.gnu.org/licenses/, or contact Free Software Foundation, Inc., | ||||
| + * 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA | ||||
| + * | ||||
| + **************************************************************** | ||||
| + * $Id$ GNU | ||||
| + */ | ||||
| + | ||||
| +struct event | ||||
| +{ | ||||
| +  struct event *next; | ||||
| +  void (*handler) __P((struct event *, char *)); | ||||
| +  char *data; | ||||
| +  int fd; | ||||
| +  int type; | ||||
| +  int pri; | ||||
| +  struct timeval timeout; | ||||
| +  int queued;		/* in evs queue */ | ||||
| +  int active;		/* in fdset */ | ||||
| +  int *condpos;		/* only active if condpos - condneg > 0 */ | ||||
| +  int *condneg; | ||||
| +}; | ||||
| + | ||||
| +#define EV_TIMEOUT	0 | ||||
| +#define EV_READ		1 | ||||
| +#define EV_WRITE	2 | ||||
| +#define EV_ALWAYS	3 | ||||
| diff --git a/sched.h b/sched.h | ||||
| deleted file mode 100644 | ||||
| index fdc3fc4..0000000 | ||||
| --- a/sched.h | ||||
| +++ /dev/null | ||||
| @@ -1,48 +0,0 @@ | ||||
| -/* Copyright (c) 2008, 2009 | ||||
| - *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) | ||||
| - *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) | ||||
| - *      Micah Cowan (micah@cowan.name) | ||||
| - *      Sadrul Habib Chowdhury (sadrul@users.sourceforge.net) | ||||
| - * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007 | ||||
| - *      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 3, 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, see | ||||
| - * http://www.gnu.org/licenses/, or contact Free Software Foundation, Inc., | ||||
| - * 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA | ||||
| - * | ||||
| - **************************************************************** | ||||
| - * $Id$ GNU | ||||
| - */ | ||||
| - | ||||
| -struct event | ||||
| -{ | ||||
| -  struct event *next; | ||||
| -  void (*handler) __P((struct event *, char *)); | ||||
| -  char *data; | ||||
| -  int fd; | ||||
| -  int type; | ||||
| -  int pri; | ||||
| -  struct timeval timeout; | ||||
| -  int queued;		/* in evs queue */ | ||||
| -  int active;		/* in fdset */ | ||||
| -  int *condpos;		/* only active if condpos - condneg > 0 */ | ||||
| -  int *condneg; | ||||
| -}; | ||||
| - | ||||
| -#define EV_TIMEOUT	0 | ||||
| -#define EV_READ		1 | ||||
| -#define EV_WRITE	2 | ||||
| -#define EV_ALWAYS	3 | ||||
| diff --git a/screen.h b/screen.h | ||||
| index 603ca3f..34238c8 100644 | ||||
| --- a/screen.h | ||||
| +++ b/screen.h | ||||
| @@ -43,7 +43,7 @@ | ||||
|  #include "osdef.h" | ||||
|   | ||||
|  #include "ansi.h" | ||||
| -#include "sched.h" | ||||
| +#include "eventqueue.h" | ||||
|  #include "acls.h" | ||||
|  #include "comm.h" | ||||
|  #include "layer.h" | ||||
| --  | ||||
| 1.8.4.5 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user