summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2014-04-20 18:32:47 +0000
committerLars Wendler <polynomial-c@gentoo.org>2014-04-20 18:32:47 +0000
commit67d6957377a5f37682e12a4c47af5f2d40c45f94 (patch)
tree787226fb855e3953ca2970e2d1756d763d9c67bf /app-misc
parentUnmask the first set of gx86-multilib conversions. (diff)
downloadgentoo-2-67d6957377a5f37682e12a4c47af5f2d40c45f94.tar.gz
gentoo-2-67d6957377a5f37682e12a4c47af5f2d40c45f94.tar.bz2
gentoo-2-67d6957377a5f37682e12a4c47af5f2d40c45f94.zip
Revbump adding latest upstream fixes. Removed old
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 0x981CA6FC)
Diffstat (limited to 'app-misc')
-rw-r--r--app-misc/screen/ChangeLog11
-rw-r--r--app-misc/screen/files/screen-4.2.0-check_for_altscreen.patch38
-rw-r--r--app-misc/screen/files/screen-4.2.0-incompatible-protocol.patch23
-rw-r--r--app-misc/screen/files/screen-4.2.0-long_terminal_names.patch69
-rw-r--r--app-misc/screen/files/screen-4.2.0-tgetent.patch31
-rw-r--r--app-misc/screen/screen-4.2.0-r1.ebuild (renamed from app-misc/screen/screen-4.2.0.ebuild)9
6 files changed, 177 insertions, 4 deletions
diff --git a/app-misc/screen/ChangeLog b/app-misc/screen/ChangeLog
index f10572b7068f..dc5d8013eb99 100644
--- a/app-misc/screen/ChangeLog
+++ b/app-misc/screen/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for app-misc/screen
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-misc/screen/ChangeLog,v 1.190 2014/04/18 17:19:45 polynomial-c Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-misc/screen/ChangeLog,v 1.191 2014/04/20 18:32:47 polynomial-c Exp $
+
+*screen-4.2.0-r1 (20 Apr 2014)
+
+ 20 Apr 2014; Lars Wendler <polynomial-c@gentoo.org> -screen-4.2.0.ebuild,
+ +screen-4.2.0-r1.ebuild, +files/screen-4.2.0-check_for_altscreen.patch,
+ +files/screen-4.2.0-incompatible-protocol.patch,
+ +files/screen-4.2.0-long_terminal_names.patch,
+ +files/screen-4.2.0-tgetent.patch:
+ Revbump adding latest upstream fixes. Removed old.
18 Apr 2014; Lars Wendler <polynomial-c@gentoo.org> screen-4.2.0.ebuild,
+files/screen-4.2.0-nonethack_segfault_fix.patch:
diff --git a/app-misc/screen/files/screen-4.2.0-check_for_altscreen.patch b/app-misc/screen/files/screen-4.2.0-check_for_altscreen.patch
new file mode 100644
index 000000000000..cb7ca5b0b0ab
--- /dev/null
+++ b/app-misc/screen/files/screen-4.2.0-check_for_altscreen.patch
@@ -0,0 +1,38 @@
+From 049a3bfdfc59590a24dfeefa707abb64b74ae17b Mon Sep 17 00:00:00 2001
+From: Amadeusz Sławiński <amade@asmblr.net>
+Date: Fri, 18 Apr 2014 18:28:39 +0000
+Subject: do proper checks if we are on altscreen or not
+
+fixes screen segfaults with `altscreen on` when using applications making
+use of altscreen like mc when resizing screen window
+
+Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
+---
+diff --git a/src/ansi.c b/src/ansi.c
+index 04c9012..e76eef4 100644
+--- a/src/ansi.c
++++ b/src/ansi.c
+@@ -1436,14 +1436,17 @@ int c, intermediate;
+ {
+ if (i)
+ {
+- if (!curr->w_alt.on)
++ if (!curr->w_alt.on) {
+ SaveCursor(&curr->w_alt.cursor);
+- EnterAltScreen(curr);
++ EnterAltScreen(curr);
++ }
+ }
+ else
+ {
+- LeaveAltScreen(curr);
+- RestoreCursor(&curr->w_alt.cursor);
++ if (curr->w_alt.on) {
++ LeaveAltScreen(curr);
++ RestoreCursor(&curr->w_alt.cursor);
++ }
+ }
+ if (a1 == 47 && !i)
+ curr->w_saved.on = 0;
+--
+cgit v0.9.0.2
diff --git a/app-misc/screen/files/screen-4.2.0-incompatible-protocol.patch b/app-misc/screen/files/screen-4.2.0-incompatible-protocol.patch
new file mode 100644
index 000000000000..582be4c8a10a
--- /dev/null
+++ b/app-misc/screen/files/screen-4.2.0-incompatible-protocol.patch
@@ -0,0 +1,23 @@
+From 14f23ca838b3d6daafbc23d14fa6aec13c382601 Mon Sep 17 00:00:00 2001
+From: Jürgen Weigert <jnweiger@gmail.com>
+Date: Fri, 18 Apr 2014 13:45:21 +0000
+Subject: incompatible protocol
+
+---
+diff --git a/src/screen.h b/src/screen.h
+index 5c93f32..e74d711 100644
+--- a/src/screen.h
++++ b/src/screen.h
+@@ -182,8 +182,9 @@ struct mode
+ * A few revisions after 8147d08 incorrectly
+ * carried version 1, but should have carried 2.
+ * 2: screen version 4.1.0devel (revisions 8b46d8a upto YYYYYYY)
++ * 3: screen version 4.2.0 (was incorrectly originally. Patched here)
+ */
+-#define MSG_VERSION 2
++#define MSG_VERSION 3
+
+ #define MSG_REVISION (('m'<<24) | ('s'<<16) | ('g'<<8) | MSG_VERSION)
+ struct msg
+--
+cgit v0.9.0.2
diff --git a/app-misc/screen/files/screen-4.2.0-long_terminal_names.patch b/app-misc/screen/files/screen-4.2.0-long_terminal_names.patch
new file mode 100644
index 000000000000..2252fef17eb1
--- /dev/null
+++ b/app-misc/screen/files/screen-4.2.0-long_terminal_names.patch
@@ -0,0 +1,69 @@
+From 44020241d033555e8e90fad3c88617dce1aed0bb Mon Sep 17 00:00:00 2001
+From: Amadeusz Sławiński <amade@asmblr.net>
+Date: Fri, 18 Apr 2014 14:01:21 +0000
+Subject: fix screen to run on terminals with long $TERM
+
+According to tic man page:
+Terminal names exceeding the maximum alias length
+(32 characters on systems with long filenames, 14 characters otherwise)
+will be truncated to the maximum alias length and a warning message
+will be printed.
+
+Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
+---
+diff --git a/src/display.h b/src/display.h
+index e8b3b80..a433e6d 100644
+--- a/src/display.h
++++ b/src/display.h
+@@ -73,7 +73,7 @@ struct display
+ struct win *d_other; /* pointer to other window */
+ int d_nonblock; /* -1 don't block if obufmax reached */
+ /* >0: block after nonblock secs */
+- char d_termname[20 + 1]; /* $TERM */
++ char d_termname[MAXTERMLEN + 1]; /* $TERM */
+ char *d_tentry; /* buffer for tgetstr */
+ char d_tcinited; /* termcap inited flag */
+ int d_width, d_height; /* width/height of the screen */
+diff --git a/src/os.h b/src/os.h
+index 5c17c83..f1d849c 100644
+--- a/src/os.h
++++ b/src/os.h
+@@ -45,6 +45,14 @@
+ #define NAME_MAX 14
+ #endif
+
++#if !defined(MAXTERMLEN)
++# if !defined(HAVE_LONG_FILE_NAMES)
++# define MAXTERMLEN 14
++# else
++# define MAXTERMLEN 32
++# endif
++#endif
++
+ #ifdef ISC
+ # ifdef ENAMETOOLONG
+ # undef ENAMETOOLONG
+diff --git a/src/screen.h b/src/screen.h
+index e74d711..01d678a 100644
+--- a/src/screen.h
++++ b/src/screen.h
+@@ -203,7 +203,7 @@ struct msg
+ int nargs;
+ char line[MAXPATHLEN];
+ char dir[MAXPATHLEN];
+- char screenterm[20]; /* is screen really "screen" ? */
++ char screenterm[MAXTERMLEN]; /* is screen really "screen" ? */
+ }
+ create;
+ struct
+@@ -215,7 +215,7 @@ struct msg
+ char preselect[20];
+ int esc; /* his new escape character unless -1 */
+ int meta_esc; /* his new meta esc character unless -1 */
+- char envterm[20 + 1]; /* terminal type */
++ char envterm[MAXTERMLEN + 1]; /* terminal type */
+ int encoding; /* encoding of display */
+ int detachfirst; /* whether to detach remote sessions first */
+ }
+--
+cgit v0.9.0.2
diff --git a/app-misc/screen/files/screen-4.2.0-tgetent.patch b/app-misc/screen/files/screen-4.2.0-tgetent.patch
new file mode 100644
index 000000000000..ad13cd4984f7
--- /dev/null
+++ b/app-misc/screen/files/screen-4.2.0-tgetent.patch
@@ -0,0 +1,31 @@
+From 937fcec34ba0d7ebfe0fb654c4106cc9c496f106 Mon Sep 17 00:00:00 2001
+From: Amadeusz Sławiński <amade@asmblr.net>
+Date: Fri, 18 Apr 2014 14:05:56 +0000
+Subject: test more libraries for tgetent
+
+Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
+---
+diff --git a/src/configure.in b/src/configure.in
+index e9ca223..139bba1 100644
+--- a/src/configure.in
++++ b/src/configure.in
+@@ -674,10 +674,16 @@ AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
+ LIBS="-lncursesw $olibs"
+ AC_CHECKING(libncursesw)
+ AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++LIBS="-ltinfow $olibs"
++AC_CHECKING(libtinfow)
++AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
+ LIBS="-lncurses $olibs"
+ AC_CHECKING(libncurses)
+ AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
+-AC_MSG_ERROR(!!! no tgetent - no screen)))))))
++LIBS="-ltinfo $olibs"
++AC_CHECKING(libtinfo)
++AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
++AC_MSG_ERROR(!!! no tgetent - no screen)))))))))
+
+ AC_TRY_RUN([
+ main()
+--
+cgit v0.9.0.2
diff --git a/app-misc/screen/screen-4.2.0.ebuild b/app-misc/screen/screen-4.2.0-r1.ebuild
index 0270d4e55db3..838e2e94f757 100644
--- a/app-misc/screen/screen-4.2.0.ebuild
+++ b/app-misc/screen/screen-4.2.0-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-misc/screen/screen-4.2.0.ebuild,v 1.3 2014/04/18 17:19:45 polynomial-c Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-misc/screen/screen-4.2.0-r1.ebuild,v 1.1 2014/04/20 18:32:47 polynomial-c Exp $
EAPI=5
@@ -32,12 +32,15 @@ src_prepare() {
# Don't use utempter even if it is found on the system
epatch "${FILESDIR}"/4.0.2-no-utempter.patch
- # Fix building against sys-libs/ncurses[tinfo]
- epatch "${FILESDIR}"/4.2.0-tinfo.patch
+ epatch "${FILESDIR}"/${P}-incompatible-protocol.patch \
+ "${FILESDIR}"/${P}-long_terminal_names.patch \
+ "${FILESDIR}"/${P}-tgetent.patch
# Fix segfault when being built without nethack support (bug #507916)
epatch "${FILESDIR}"/${P}-nonethack_segfault_fix.patch
+ epatch "${FILESDIR}"/${P}-check_for_altscreen.patch
+
# sched.h is a system header and causes problems with some C libraries
mv sched.h _sched.h || die
sed -i '/include/ s:sched.h:_sched.h:' screen.h || die