diff --git a/utils/screen/Makefile b/utils/screen/Makefile index 8399f19bd..c4244522f 100644 --- a/utils/screen/Makefile +++ b/utils/screen/Makefile @@ -9,14 +9,19 @@ include $(TOPDIR)/rules.mk PKG_NAME:=screen PKG_VERSION:=4.6.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_HASH:=1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a PKG_SOURCE_URL:=@GNU/screen +PKG_HASH:=1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a +PKG_MAINTAINER:=Etienne CHAMPETIER PKG_LICENSE:=GPL-3.0+ -PKG_LICENSE_FILES:= +PKG_LICENSE_FILES:=COPYING + +PKG_FIXUP:=autoreconf +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk @@ -26,8 +31,7 @@ define Package/screen SUBMENU:=Terminal DEPENDS:=+libncurses TITLE:=Full-screen terminal window manager - URL:=http://www.gnu.org/software/screen/ - MAINTAINER:=Etienne CHAMPETIER + URL:=https://www.gnu.org/software/screen/ endef define Package/screen/description @@ -35,14 +39,9 @@ define Package/screen/description terminal between several processes, typically interactive shells. endef -define Build/Configure - $(call Build/Configure/Default,\ - --with-sys-screenrc=/etc/screenrc \ - --enable-colors256 \ - ) - # XXX: memmove() works well with overlapped memory areas - echo "#define USEMEMMOVE 1" >>$(PKG_BUILD_DIR)/config.h -endef +CONFIGURE_ARGS += \ + --enable-colors256 \ + --with-sys-screenrc=/etc/screenrc define Package/screen/install $(INSTALL_DIR) $(1)/usr/sbin diff --git a/utils/screen/patches/010-fix-configure-failed-while-build-dir-name-contains-y.patch b/utils/screen/patches/010-fix-configure-failed-while-build-dir-name-contains-y.patch new file mode 100644 index 000000000..ede6de923 --- /dev/null +++ b/utils/screen/patches/010-fix-configure-failed-while-build-dir-name-contains-y.patch @@ -0,0 +1,128 @@ +From 8c2b4061d16756ee2ed37f08db063b8215656943 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 2 Nov 2017 16:48:15 +0800 +Subject: [PATCH] fix configure failed while build dir name contains "yes" + +While build dir name contained "yes", and compiled with +producing debugging information (-g), the configure failed. + +The pattern of AC_EGREP_CPP (string "yes") mismatched with +dir name. It caused the test of AC_EGREP_CPP incorrect. + +Use YES_IS_DEFINED to replace yes which is not often used +as dir name. + +Bug: 52329 +(Fix release v.4.6.2 or above) + +Signed-off-by: Hongxu Jia +--- + configure.ac | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +diff --git a/src/configure.ac b/src/configure.ac +index 28237f5..34f9735 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -151,9 +151,9 @@ fi + + + AC_CHECKING(for Ultrix) +-AC_EGREP_CPP(yes, ++AC_EGREP_CPP(YES_IS_DEFINED, + [#if defined(ultrix) || defined(__ultrix) +- yes; ++ YES_IS_DEFINED; + #endif + ], ULTRIX=1) + +@@ -168,9 +168,9 @@ dnl ghazi@caip.rutgers.edu (Kaveh R. Ghazi): + dnl BBN butterfly is not POSIX, but a MACH BSD system. + dnl Do not define POSIX and TERMIO. + AC_CHECKING(for butterfly) +-AC_EGREP_CPP(yes, ++AC_EGREP_CPP(YES_IS_DEFINED, + [#if defined(butterfly) +- yes; ++ YES_IS_DEFINED; + #endif + ], butterfly=1) + +@@ -179,12 +179,12 @@ if test -n "$ULTRIX"; then + test -z "$GCC" && CC="$CC -YBSD" + fi + AC_CHECKING(for POSIX.1) +-AC_EGREP_CPP(yes, ++AC_EGREP_CPP(YES_IS_DEFINED, + [#include + #include + main () { + #ifdef _POSIX_VERSION +- yes; ++ YES_IS_DEFINED; + #endif + ], AC_NOTE(- you have a POSIX system) AC_DEFINE(POSIX) posix=1) + fi +@@ -196,9 +196,9 @@ AC_TRY_COMPILE( + #include ], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE(SYSV)) + + AC_CHECKING(for sequent/ptx) +-AC_EGREP_CPP(yes, ++AC_EGREP_CPP(YES_IS_DEFINED, + [#ifdef _SEQUENT_ +- yes; ++ YES_IS_DEFINED; + #endif + ], LIBS="$LIBS -lsocket -linet";seqptx=1) + +@@ -213,9 +213,9 @@ AC_TRY_LINK([#include + AC_CHECK_HEADERS([stropts.h string.h strings.h]) + + AC_CHECKING(for Solaris 2.x) +-AC_EGREP_CPP(yes, ++AC_EGREP_CPP(YES_IS_DEFINED, + [#if defined(SVR4) && defined(sun) +- yes ++ YES_IS_DEFINED; + #endif + ], LIBS="$LIBS -lsocket -lnsl -lkstat") + +@@ -699,9 +699,9 @@ else + pdir='/dev' + fi + dnl SCO uses ptyp%d +-AC_EGREP_CPP(yes, ++AC_EGREP_CPP(YES_IS_DEFINED, + [#ifdef M_UNIX +- yes; ++ YES_IS_DEFINED; + #endif + ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`) + dnl if test -c /dev/ptyp19; then +@@ -878,9 +878,9 @@ fi + ) + + if test -z "$load" ; then +-AC_EGREP_CPP(yes, ++AC_EGREP_CPP(YES_IS_DEFINED, + [#if defined(NeXT) || defined(apollo) || defined(linux) +- yes; ++ YES_IS_DEFINED; + #endif + ], load=1) + fi +@@ -1105,9 +1105,9 @@ 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_EGREP_CPP(yes, ++AC_EGREP_CPP(YES_IS_DEFINED, + [#ifdef M_UNIX +- yes; ++ YES_IS_DEFINED; + #endif + ], LIBS="$LIBS -lsocket -lcrypt_i") + +-- +2.17.1 + diff --git a/utils/screen/patches/020-fix-configure-option-disable-use-locale-is-not-worki.patch b/utils/screen/patches/020-fix-configure-option-disable-use-locale-is-not-worki.patch new file mode 100644 index 000000000..95ba8802a --- /dev/null +++ b/utils/screen/patches/020-fix-configure-option-disable-use-locale-is-not-worki.patch @@ -0,0 +1,44 @@ +From 5c3643fb701cc380ceb02116526ef4f5885295d0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= +Date: Sat, 16 Dec 2017 15:09:57 +0100 +Subject: [PATCH] fix: configure option "--disable-use-locale" is not working + +Bug: 52663 +--- + acconfig.h | 2 +- + configure.ac | 6 +++++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/acconfig.h b/src/acconfig.h +index 4e5cda0..6ff2d32 100644 +--- a/acconfig.h ++++ b/acconfig.h +@@ -274,7 +274,7 @@ + * Define USE_LOCALE if you want screen to use the locale names + * for the name of the month and day of the week. + */ +-#define USE_LOCALE ++#undef USE_LOCALE + + /* + * Define USE_PAM if your system supports PAM (Pluggable Authentication +diff --git a/src/configure.ac b/src/configure.ac +index 34f9735..d1bc42c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1246,7 +1246,11 @@ if test "$enable_pam" = "yes"; then + AC_MSG_RESULT(no);LIBS="$oldlibs") + fi + +-AC_ARG_ENABLE(use_locale, [ --enable-use-locale use localized month/day names]) ++AC_ARG_ENABLE(use-locale, ++ [ --enable-use-locale use localized month/day names (default: yes)], ++ [], ++ [enable_use_locale=yes] ++) + if test "$enable_use_locale" = "yes"; then + AC_DEFINE(USE_LOCALE) + fi +-- +2.17.1 + diff --git a/utils/screen/patches/030-PATCH-1-4-Remove-redundant-compiler-sanity-checks.patch b/utils/screen/patches/030-PATCH-1-4-Remove-redundant-compiler-sanity-checks.patch new file mode 100644 index 000000000..3e04e1bef --- /dev/null +++ b/utils/screen/patches/030-PATCH-1-4-Remove-redundant-compiler-sanity-checks.patch @@ -0,0 +1,65 @@ +From 6b320186db7df1e58fdd2c836af54c86cc596981 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Sat, 24 Feb 2018 15:09:10 +0100 +Subject: [PATCH] [PATCH 1/4] Remove 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. + +Modified from patch by Maarten ter Huurne. + +Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223] + +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 27 --------------------------- + 1 file changed, 27 deletions(-) + +diff --git a/src/configure.ac b/src/configure.ac +index d1bc42c..a8208ea 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 +@@ -1278,8 +1253,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}" ]) +-- +2.17.1 + diff --git a/utils/screen/patches/040-PATCH-2-4-Provide-cross-compile-alternatives-for-AC_.patch b/utils/screen/patches/040-PATCH-2-4-Provide-cross-compile-alternatives-for-AC_.patch new file mode 100644 index 000000000..9e573a0e7 --- /dev/null +++ b/utils/screen/patches/040-PATCH-2-4-Provide-cross-compile-alternatives-for-AC_.patch @@ -0,0 +1,137 @@ +From abba47ce4206506c49858d944e904fff86ae65cc Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Sat, 24 Feb 2018 15:14:48 +0100 +Subject: [PATCH] [PATCH 2/4] Provide cross compile alternatives for AC_TRY_RUN + +Modified from patch by Maarten ter Huurne. + +Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223] + +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 32 ++++++++++++++++++++------------ + 1 file changed, 20 insertions(+), 12 deletions(-) + +diff --git a/src/configure.ac b/src/configure.ac +index a8208ea..74be368 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 + +@@ -598,7 +602,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 **** +@@ -640,7 +645,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)) + +@@ -775,7 +781,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 +@@ -859,7 +866,7 @@ AC_EGREP_CPP(YES_IS_DEFINED, + #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 +@@ -1052,7 +1059,7 @@ main() + #endif + exit(0); + } +-],,AC_DEFINE(SYSVSIGS)) ++],,AC_DEFINE(SYSVSIGS),:) + + fi + +@@ -1132,7 +1139,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) +@@ -1147,7 +1154,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_TRY_RUN([ +@@ -1163,7 +1171,7 @@ main() { + if (strncmp(buf, "cdedef", 6)) + exit(1); + exit(0); /* libc version works properly. */ +-}], AC_DEFINE(USEMEMCPY)) ++}], AC_DEFINE(USEMEMCPY),,:) + + AC_SYS_LONG_FILE_NAMES + +-- +2.17.1 + diff --git a/utils/screen/patches/050-PATCH-3-4-Skip-host-file-system-checks-when-cross-co.patch b/utils/screen/patches/050-PATCH-3-4-Skip-host-file-system-checks-when-cross-co.patch new file mode 100644 index 000000000..fc9a91eed --- /dev/null +++ b/utils/screen/patches/050-PATCH-3-4-Skip-host-file-system-checks-when-cross-co.patch @@ -0,0 +1,135 @@ +From c573b89139e7a068f5573abd565605bed60f293f Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Sat, 24 Feb 2018 15:18:33 +0100 +Subject: [PATCH] [PATCH 3/4] Skip host file system checks when cross-compiling + +Modified from patch by Maarten ter Huurne. + +Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223] + +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 23 +++++++++++++++++++---- + 1 file changed, 19 insertions(+), 4 deletions(-) + +diff --git a/src/configure.ac b/src/configure.ac +index 74be368..bd748d9 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_IS_DEFINED, + #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) +@@ -653,17 +655,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) + +@@ -673,6 +679,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' +@@ -696,6 +703,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 +@@ -843,14 +851,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) +@@ -1068,13 +1078,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) +-- +2.17.1 + diff --git a/utils/screen/patches/060-PATCH-4-4-Avoid-mis-identifying-systems-as-SVR4.patch b/utils/screen/patches/060-PATCH-4-4-Avoid-mis-identifying-systems-as-SVR4.patch new file mode 100644 index 000000000..51d6c01fb --- /dev/null +++ b/utils/screen/patches/060-PATCH-4-4-Avoid-mis-identifying-systems-as-SVR4.patch @@ -0,0 +1,57 @@ +From ec90292592dd2c9d5c108390841e3df24e377ed5 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Sat, 24 Feb 2018 15:22:05 +0100 +Subject: [PATCH] [PATCH 4/4] Avoid mis-identifying systems as SVR4 + +Linux can be misdetected as SVR4 because it has +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. + +Modified from patch by Maarten ter Huurne. + +Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223] + +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/src/configure.ac b/src/configure.ac +index bd748d9..ab799d2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -179,14 +179,24 @@ AC_EGREP_CPP(YES_IS_DEFINED, + #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 + ],, +-[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) +-- +2.17.1 + diff --git a/utils/screen/patches/100-cross_compile_fix.patch b/utils/screen/patches/100-cross_compile_fix.patch deleted file mode 100644 index 38821c412..000000000 --- a/utils/screen/patches/100-cross_compile_fix.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- a/configure -+++ b/configure -@@ -414,7 +414,7 @@ as_fn_error () - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 -- as_fn_exit $as_status -+ # as_fn_exit $as_status - } # as_fn_error - - if expr a : '\(a\)' >/dev/null 2>&1 && -@@ -5909,8 +5909,6 @@ else - fi - rm -f core conftest.err 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" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking IRIX sun library..." >&5 -@@ -6991,7 +6989,7 @@ as_fn_error () - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 -- as_fn_exit $as_status -+ # as_fn_exit $as_status - } # as_fn_error - - ---- a/pty.c -+++ b/pty.c -@@ -39,9 +39,9 @@ - #endif - - /* for solaris 2.1, Unixware (SVR4.2) and possibly others */ --#ifdef HAVE_STROPTS_H --# include --#endif -+//#ifdef HAVE_STROPTS_H -+//# include -+//#endif - - #if defined(sun) && defined(LOCKPTY) && !defined(TIOCEXCL) - # include ---- a/sched.h -+++ b/sched.h -@@ -27,6 +27,11 @@ - * $Id$ GNU - */ - -+#ifndef __SCHED_H -+#define __SCHED_H -+ -+#include -+ - struct event - { - struct event *next; -@@ -46,3 +51,5 @@ struct event - #define EV_READ 1 - #define EV_WRITE 2 - #define EV_ALWAYS 3 -+ -+#endif diff --git a/utils/screen/patches/110-do_not_add_srcdir_to_include_path.patch b/utils/screen/patches/110-do_not_add_srcdir_to_include_path.patch deleted file mode 100644 index 61389b792..000000000 --- a/utils/screen/patches/110-do_not_add_srcdir_to_include_path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Makefile.in -+++ b/Makefile.in -@@ -79,7 +79,7 @@ screen: $(OFILES) - $(CC) $(LDFLAGS) -o $@ $(OFILES) $(LIBS) - - .c.o: -- $(CC) -c -I. -I$(srcdir) $(M_CFLAGS) $(CPPFLAGS) $(DEFS) \ -+ $(CC) -c $(M_CFLAGS) $(CPPFLAGS) $(DEFS) \ - $(OPTIONS) $(CFLAGS) $< - - install_bin: .version screen installdirs diff --git a/utils/screen/patches/200-musl-compat.patch b/utils/screen/patches/200-musl-compat.patch deleted file mode 100644 index cd783bde3..000000000 --- a/utils/screen/patches/200-musl-compat.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- a/configure -+++ b/configure -@@ -4155,44 +4155,6 @@ fi - rm -f conftest* - - --oldlibs="$LIBS" --LIBS="$LIBS -lelf" --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking SVR4..." >&5 --$as_echo "$as_me: checking SVR4..." >&6;} --cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --#include -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_link "$LINENO"; then : -- ac_fn_c_check_header_mongrel "$LINENO" "dwarf.h" "ac_cv_header_dwarf_h" "$ac_includes_default" --if test "x$ac_cv_header_dwarf_h" = xyes; then : -- $as_echo "#define SVR4 1" >>confdefs.h -- $as_echo "#define BUGGYGETLOGIN 1" >>confdefs.h -- --else -- ac_fn_c_check_header_mongrel "$LINENO" "elf.h" "ac_cv_header_elf_h" "$ac_includes_default" --if test "x$ac_cv_header_elf_h" = xyes; then : -- $as_echo "#define SVR4 1" >>confdefs.h -- $as_echo "#define BUGGYGETLOGIN 1" >>confdefs.h -- --fi -- -- --fi -- -- -- --else -- LIBS="$oldlibs" --fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - for ac_header in stropts.h string.h strings.h ---- a/utmp.c -+++ b/utmp.c -@@ -33,6 +33,7 @@ - #include "config.h" - #include "screen.h" - #include "extern.h" -+#include "os.h" - - #ifdef HAVE_UTEMPTER - #include