* [gentoo-commits] dev/bircoph:master commit in: profiles/, app-misc/screen/, app-misc/screen/files/
@ 2016-06-13 12:37 Andrew Savchenko
0 siblings, 0 replies; only message in thread
From: Andrew Savchenko @ 2016-06-13 12:37 UTC (permalink / raw
To: gentoo-commits
commit: ee54ea3b8ef01d85b1fd8c8bbb468a03dc763da8
Author: Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 13 12:36:47 2016 +0000
Commit: Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
CommitDate: Mon Jun 13 12:36:47 2016 +0000
URL: https://gitweb.gentoo.org/dev/bircoph.git/commit/?id=ee54ea3b
screen: fix bug 585696
app-misc/screen/Manifest | 8 +
.../screen/files/screen-4.3.0-no-utempter.patch | 14 +
app-misc/screen/files/screen-4.3.1-ansi.c.patch | 37 +++
app-misc/screen/files/screen-4.3.1-termlen.patch | 164 ++++++++++
app-misc/screen/files/screenrc | 356 +++++++++++++++++++++
app-misc/screen/metadata.xml | 35 ++
app-misc/screen/screen-4.3.1-r1.ebuild | 159 +++++++++
app-misc/screen/screen-9999.ebuild | 141 ++++++++
profiles/categories | 1 +
9 files changed, 915 insertions(+)
diff --git a/app-misc/screen/Manifest b/app-misc/screen/Manifest
new file mode 100644
index 0000000..9dc7935
--- /dev/null
+++ b/app-misc/screen/Manifest
@@ -0,0 +1,8 @@
+AUX screen-4.3.0-no-utempter.patch 363 SHA256 c8e4b1a03175fb2af3e13fa514b8a5456b53905a7ca51587195a62cb8d60e1c9 SHA512 0b2e6a2b54e6155e217ab44a0d8314afafd97fae684fbc2875c0f4d21df29cb259ea4023343e92da16dd3a2bf11ec6d06e677d765748299d1633aa1b9261a604 WHIRLPOOL c59a0c3f32ad50e15cd5e902b7b600cda18d2b676209628e7b96120866e7aba968264fbf8b35dc3e252b9fd63f21611005c9ec46cddc5e42b30c8da29a5e5186
+AUX screen-4.3.1-ansi.c.patch 657 SHA256 806fa628fbbfcf4a63153e0f2a4979ad02d9531151817ef5183c34c4d12adb26 SHA512 ca746103856afd2e93eff8b5b81fa1f4f83c9a89511ce2bd88a6ebfb4becd858da97df48c2939ec2bc631d17e98613f252ca92f1e53f5ad5358f118c449ab545 WHIRLPOOL 39ff78cb6aadf4fe8a7a3cdfb44f7fb656d497a60d3809bd751b7ba0fdb3ae9ebf11ee93e663a1f713fe3e16e34792e10670825eda36754be46dc7fcecc0e810
+AUX screen-4.3.1-termlen.patch 5928 SHA256 1dc2d737105e2571fa7cfc87b417319fdba415fc355228d9a581aa045b807f43 SHA512 23b22ccb24be133f2885bd270e3f24e547d5db78c95c77ffe18369162f497ab12c5afd897ff8890588d3734524a5c93db688d08067529a093b84ca6931c02d88 WHIRLPOOL 0a7afacc026c49b1d5794ef7383b85791ea3ce7fc8b54f33cc90f0811f6f3a8160e28b230b6527d08c7c40986e23bdf96d227c46a5a9b715480871fac50dbfbf
+AUX screenrc 10412 SHA256 191d91f9fd1e676525a9e1a3bdc5ac73283f948caf74b4bb6e0cfcecbe4798bb SHA512 06fbec5e28480a2c369330fac0c94faa47e5d28e037d9fefd0cb3e813002c504866dc8ac86872b7ac6f16059a219e396a9c425b578b8afe882153ddb506158f7 WHIRLPOOL e05785d9810a709ccd189bbf1557022bd91f653ddb2f138e54286fbbc11ddbbedf2276d2b8bc975a8ff1ac024ab24d955a6b3055cf5cd2dfb445c35484e90f09
+DIST screen-4.3.1.tar.gz 845958 SHA256 fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63 SHA512 8e8a25b23330a7d8e00fc9e6cc430f0eb3937ccf4183efbd6fd24e4dc04cc09b3acae45bfc24892faee433b18fa79b1cfe0211fd75c0d74ecf908f916bf774aa WHIRLPOOL b47f7538351028cc3a2ec7f69a9373e152fa7655c6ae9feb75ba46db3cdc9b7d58ce78043993b7f134da3a04754c5e52d1a77da4c30a8decda21c79cf5c50f51
+EBUILD screen-4.3.1-r1.ebuild 4175 SHA256 15a6ac7f86f6a99d946daf46cc29b4de31e46917a6ff20286a7a9019645fbb2f SHA512 6c4f85ac9eeab991f391215c9895c27330d636600b48d2acc1c6d2c90e18d24438b62c99cf7b1836c0b9ccd4e59e871315bf0c2e6ff40075421f1c74bf832ec7 WHIRLPOOL 01462e35f0e15a82c3732b4cd6d5adf116fbc5f19e9bddf1d7cab14f776908ed78676abdc76b032a5c088fa3a43ef5df5276d1882d8666317baa15099531f8f8
+EBUILD screen-9999.ebuild 3547 SHA256 a1331ae77d9bf29dbe671553c8ce6bc23e68d9a32c0138fabefdbe2fb5e8091d SHA512 5ac4c2bc01a5d69fe039fd5b6e51b911fc4f222f55a51198a3e7404768e3ad1a0aededcda864bc8706c5a834c2695cfbadbfb317632d20687f03f8179304e9cf WHIRLPOOL a47db36b0395a8db33a306f1a32c685a5e83ed27648b69f4fb274a24cc364c8b3cdb43fb070673f16fbb971c29958a51147a6f8df0d90d1952e30455b67118bb
+MISC metadata.xml 1836 SHA256 984b97ece43237c29770f80c3aa7ab62fc2d426cffa8a2c0075674e935c19ce0 SHA512 e327b61501e6b496045d552851db574b519a99f56c9203c3376b886808a422f8e4aab23b667bcab0d1388ba7ea781c9c9e9f1d07b1426f113119c60cd70d0bcf WHIRLPOOL 545db9b6f0ad028845854bb55829c39b832251e8e790e910e64c2e00c8e8f554ee5fb7d98f1919b1f327fbae9b9e4e0978acef3a534e03de4b6b30f5bced07f6
diff --git a/app-misc/screen/files/screen-4.3.0-no-utempter.patch b/app-misc/screen/files/screen-4.3.0-no-utempter.patch
new file mode 100644
index 0000000..9a830a2
--- /dev/null
+++ b/app-misc/screen/files/screen-4.3.0-no-utempter.patch
@@ -0,0 +1,14 @@
+--- screen-4.3.0/configure.ac
++++ screen-4.3.0/configure.ac
+@@ -878,11 +878,6 @@
+ #include <utmp.h>
+ #endif
+ ],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE(UTHOST))
+-AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no)
+-if test "$have_utempter" = yes; then
+- AC_DEFINE(HAVE_UTEMPTER)
+- LIBS="$LIBS -lutempter"
+-fi
+
+ dnl
+ dnl **** loadav ****
diff --git a/app-misc/screen/files/screen-4.3.1-ansi.c.patch b/app-misc/screen/files/screen-4.3.1-ansi.c.patch
new file mode 100644
index 0000000..24a1167
--- /dev/null
+++ b/app-misc/screen/files/screen-4.3.1-ansi.c.patch
@@ -0,0 +1,37 @@
+--- a/ansi.c
++++ b/ansi.c
+@@ -2502,13 +2502,13 @@
+ return;
+ if (n > 0)
+ {
++ if (ye - ys + 1 < n)
++ n = ye - ys + 1;
+ if (n > 256)
+ {
+ MScrollV(p, n - 256, ys, ye, bce);
+ n = 256;
+ }
+- if (ye - ys + 1 < n)
+- n = ye - ys + 1;
+ #ifdef COPY_PASTE
+ if (compacthist)
+ {
+@@ -2562,15 +2562,14 @@
+ }
+ else
+ {
++ n = -n;
++ if (ye - ys + 1 < n)
++ n = ye - ys + 1;
+ if (n < -256)
+ {
+ MScrollV(p, n + 256, ys, ye, bce);
+ n = -256;
+ }
+- n = -n;
+- if (ye - ys + 1 < n)
+- n = ye - ys + 1;
+-
+ ml = p->w_mlines + ye;
+ /* Clear lines */
+ for (i = ye; i > ye - n; i--, ml--)
diff --git a/app-misc/screen/files/screen-4.3.1-termlen.patch b/app-misc/screen/files/screen-4.3.1-termlen.patch
new file mode 100644
index 0000000..1452768
--- /dev/null
+++ b/app-misc/screen/files/screen-4.3.1-termlen.patch
@@ -0,0 +1,164 @@
+Backported git commit 37ca949e462a7608572f653848b5a7554964fd53
+"Fix more hardcoded termlen"
+See bug 585696.
+
+diff -Naurd screen-4.3.1.orig/attacher.c screen-4.3.1/attacher.c
+--- screen-4.3.1.orig/attacher.c 2015-06-29 00:22:55.000000000 +0300
++++ screen-4.3.1/attacher.c 2016-06-12 17:00:41.091761944 +0300
+@@ -364,8 +364,8 @@
+ }
+ #endif
+ ASSERT(how == MSG_ATTACH || how == MSG_CONT);
+- strncpy(m.m.attach.envterm, attach_term, sizeof(m.m.attach.envterm) - 1);
+- m.m.attach.envterm[sizeof(m.m.attach.envterm) - 1] = 0;
++ strncpy(m.m.attach.envterm, attach_term, MAXTERMLEN);
++ m.m.attach.envterm[MAXTERMLEN] = 0;
+ debug1("attach: sending %d bytes... ", (int)sizeof(m));
+
+ strncpy(m.m.attach.auser, LoginName, sizeof(m.m.attach.auser) - 1);
+diff -Naurd screen-4.3.1.orig/display.c screen-4.3.1/display.c
+--- screen-4.3.1.orig/display.c 2015-06-29 00:22:55.000000000 +0300
++++ screen-4.3.1/display.c 2016-06-12 17:03:00.196561319 +0300
+@@ -309,8 +309,8 @@
+
+ strncpy(D_usertty, utty, sizeof(D_usertty) - 1);
+ D_usertty[sizeof(D_usertty) - 1] = 0;
+- strncpy(D_termname, term, sizeof(D_termname) - 1);
+- D_termname[sizeof(D_termname) - 1] = 0;
++ strncpy(D_termname, term, MAXTERMLEN);
++ D_termname[MAXTERMLEN] = 0;
+ D_user = *u;
+ D_processinput = ProcessInput;
+ D_mousetrack = defmousetrack;
+@@ -3725,14 +3725,14 @@
+ char *m;
+ int pid;
+ int slave = -1;
+- char termname[30];
++ char termname[MAXTERMLEN + 6];
+ #ifndef TIOCSWINSZ
+ char libuf[20], cobuf[20];
+ #endif
+ char **np;
+
+ strcpy(termname, "TERM=");
+- strncpy(termname + 5, D_termname, sizeof(termname) - 6);
++ strncpy(termname + 5, D_termname, MAXTERMLEN - 6);
+ termname[sizeof(termname) - 1] = 0;
+ KillBlanker();
+ D_blankerpid = -1;
+diff -Naurd screen-4.3.1.orig/process.c screen-4.3.1/process.c
+--- screen-4.3.1.orig/process.c 2015-06-29 00:22:56.000000000 +0300
++++ screen-4.3.1/process.c 2016-06-12 17:04:37.999014093 +0300
+@@ -2672,13 +2672,14 @@
+ s = NULL;
+ if (ParseSaveStr(act, &s))
+ break;
+- if (strlen(s) >= MAXTERMLEN)
++ if (strlen(s) > MAXTERMLEN)
+ {
+ OutputMsg(0, "%s: term: argument too long ( < %d)", rc_name, MAXTERMLEN);
+ free(s);
+ break;
+ }
+- strcpy(screenterm, s);
++ strncpy(screenterm, s, MAXTERMLEN);
++ screenterm[MAXTERMLEN] = '\0';
+ free(s);
+ debug1("screenterm set to %s\n", screenterm);
+ MakeTermcap((display == 0));
+diff -Naurd screen-4.3.1.orig/screen.c screen-4.3.1/screen.c
+--- screen-4.3.1.orig/screen.c 2015-06-29 00:22:56.000000000 +0300
++++ screen-4.3.1/screen.c 2016-06-12 17:18:35.887758770 +0300
+@@ -507,7 +507,8 @@
+ #endif
+ nwin = nwin_undef;
+ nwin_options = nwin_undef;
+- strcpy(screenterm, "screen");
++ strncpy(screenterm, "screen", MAXTERMLEN);
++ screenterm[MAXTERMLEN] = '\0';
+ #ifdef BUILTIN_TELNET
+ af = AF_UNSPEC;
+ #endif
+@@ -689,8 +690,10 @@
+ case 'T':
+ if (--ac == 0)
+ exit_with_usage(myname, "Specify terminal-type with -T", NULL);
+- if (strlen(*++av) < 20)
+- strcpy(screenterm, *av);
++ if (strlen(*++av) < MAXTERMLEN) {
++ strncpy(screenterm, *av, MAXTERMLEN);
++ screenterm[MAXTERMLEN] = '\0';
++ }
+ else
+ Panic(0, "-T: terminal name too long. (max. 20 char)");
+ nwin_options.term = screenterm;
+@@ -1034,7 +1037,7 @@
+
+ if ((attach_term = getenv("TERM")) == 0 || *attach_term == 0)
+ Panic(0, "Please set a terminal type.");
+- if (strlen(attach_term) > sizeof(D_termname) - 1)
++ if (strlen(attach_term) > MAXTERMLEN)
+ Panic(0, "$TERM too long - sorry.");
+ GetTTY(0, &attach_Mode);
+ #ifdef DEBUGGGGGGGGGGGGGGG
+diff -Naurd screen-4.3.1.orig/screen.h screen-4.3.1/screen.h
+--- screen-4.3.1.orig/screen.h 2015-06-29 00:22:56.000000000 +0300
++++ screen-4.3.1/screen.h 2016-06-12 17:19:07.821253585 +0300
+@@ -204,7 +204,7 @@
+ int nargs;
+ char line[MAXPATHLEN];
+ char dir[MAXPATHLEN];
+- char screenterm[MAXTERMLEN]; /* is screen really "screen" ? */
++ char screenterm[MAXTERMLEN + 1]; /* is screen really "screen" ? */
+ }
+ create;
+ struct
+diff -Naurd screen-4.3.1.orig/socket.c screen-4.3.1/socket.c
+--- screen-4.3.1.orig/socket.c 2015-06-29 00:22:56.000000000 +0300
++++ screen-4.3.1/socket.c 2016-06-12 17:20:01.577403167 +0300
+@@ -695,8 +695,8 @@
+ return;
+ }
+ if (nwin->term != nwin_undef.term)
+- strncpy(m.m.create.screenterm, nwin->term, 19);
+- m.m.create.screenterm[19] = '\0';
++ strncpy(m.m.create.screenterm, nwin->term, MAXTERMLEN);
++ m.m.create.screenterm[MAXTERMLEN] = '\0';
+ m.protocol_revision = MSG_REVISION;
+ debug1("SendCreateMsg writing '%s'\n", m.m.create.line);
+ if (write(s, (char *) &m, sizeof m) != sizeof m)
+diff -Naurd screen-4.3.1.orig/termcap.c screen-4.3.1/termcap.c
+--- screen-4.3.1.orig/termcap.c 2015-06-29 00:22:56.000000000 +0300
++++ screen-4.3.1/termcap.c 2016-06-12 17:21:40.297841419 +0300
+@@ -72,7 +72,7 @@
+ static int Termcaplen;
+ static int tcLineLen;
+ char Term[MAXSTR+5]; /* +5: "TERM=" */
+-char screenterm[20]; /* new $TERM, usually "screen" */
++char screenterm[MAXTERMLEN + 1]; /* new $TERM, usually "screen" */
+
+ char *extra_incap, *extra_outcap;
+
+@@ -883,7 +883,8 @@
+ if (*screenterm == '\0' || strlen(screenterm) > MAXSTR - 3)
+ {
+ debug("MakeTermcap sets screenterm=screen\n");
+- strcpy(screenterm, "screen");
++ strncpy(screenterm, "screen", MAXTERMLEN);
++ screenterm[MAXTERMLEN] = '\0';
+ }
+ #if 0
+ found = 1;
+diff -Naurd screen-4.3.1.orig/window.c screen-4.3.1/window.c
+--- screen-4.3.1.orig/window.c 2015-06-29 00:22:56.000000000 +0300
++++ screen-4.3.1/window.c 2016-06-12 17:22:53.174688514 +0300
+@@ -1438,7 +1438,7 @@
+ NewEnv[4] = shellbuf;
+ debug1("ForkWindow: NewEnv[4] = '%s'\n", shellbuf);
+ if (win->w_term && *win->w_term && strcmp(screenterm, win->w_term) &&
+- (strlen(win->w_term) < 20))
++ (strlen(win->w_term) < MAXTERMLEN))
+ {
+ char *s1, *s2, tl;
+
diff --git a/app-misc/screen/files/screenrc b/app-misc/screen/files/screenrc
new file mode 100644
index 0000000..11f2f55
--- /dev/null
+++ b/app-misc/screen/files/screenrc
@@ -0,0 +1,356 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+#
+# /etc/screenrc
+#
+# This is the system wide screenrc.
+#
+# You can use this file to change the default behavior of screen system wide
+# or copy it to ~/.screenrc and use it as a starting point for your own
+# settings.
+#
+# Commands in this file are used to set options, bind screen functions to
+# keys, redefine terminal capabilities, and to automatically establish one or
+# more windows at the beginning of your screen session.
+#
+# This is not a comprehensive list of options, look at the screen manual for
+# details on everything that you can put in this file.
+#
+#
+
+# ==============================================================================
+# SCREEN SETTINGS
+# ==============================================================================
+
+# ESCAPE - the COMMAND CHARACTER
+# ===============================================================
+# escape ^aa # default
+# escape ^^^^ # suggested binding (Control-^) for Emacs users
+
+
+# PASSWORD
+# ===============================================================
+# This commands sets the *internal* password for the screen session.
+# WARNING!! If this is set then a "lock" command will only let you in to the
+# session after you enter the user's account password and then *also*
+# the internal password for that session. This gives additional safety but,
+# if you forget the internal password then you cannot resume your session.
+# Use :password to generate a password
+# password ODSJQf.4IJN7E # "1234"
+
+
+# VARIABLES
+# ===============================================================
+# No annoying audible bell, using "visual bell"
+# vbell on # default: off
+# vbell_msg " -- Bell,Bell!! -- " # default: "Wuff,Wuff!!"
+
+# Automatically detach on hangup.
+ autodetach on # default: on
+
+# Don't display the copyright page
+ startup_message off # default: on
+
+# Uses nethack-style messages
+# nethack on # default: off
+
+# Affects the copying of text regions
+ crlf off # default: off
+
+# Enable/disable multiuser mode. Standard screen operation is singleuser.
+# In multiuser mode the commands acladd, aclchg, aclgrp and acldel can be used
+# to enable (and disable) other user accessing this screen session.
+# Requires suid-root.
+ multiuser off
+
+# Change default scrollback value for new windows
+ defscrollback 1000 # default: 100
+
+# Define the time that all windows monitored for silence should
+# wait before displaying a message. Default 30 seconds.
+ silencewait 15 # default: 30
+
+# bufferfile: The file to use for commands
+# "readbuf" ('<') and "writebuf" ('>'):
+ bufferfile $HOME/.screen_exchange
+#
+# hardcopydir: The directory which contains all hardcopies.
+# hardcopydir ~/.hardcopy
+# hardcopydir ~/.screen
+#
+# shell: Default process started in screen's windows.
+# Makes it possible to use a different shell inside screen
+# than is set as the default login shell.
+# If begins with a '-' character, the shell will be started as a login shell.
+# shell zsh
+# shell bash
+# shell ksh
+ shell -$SHELL
+
+# shellaka '> |tcsh'
+# shelltitle '$ |bash'
+
+# emulate .logout message
+ pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."
+
+# caption always " %w --- %c:%s"
+# caption always "%3n %t%? @%u%?%? [%h]%?%=%c"
+
+# advertise hardstatus support to $TERMCAP
+# termcapinfo * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\'
+
+# set every new windows hardstatus line to somenthing descriptive
+# defhstatus "screen: ^En (^Et)"
+
+# don't kill window after the process died
+# zombie "^["
+
+# ignore displays that block on output
+defnonblock on
+
+# XTERM TWEAKS
+# ===============================================================
+
+# xterm understands both im/ic and doesn't have a status line.
+# Note: Do not specify im and ic in the real termcap/info file as
+# some programs (e.g. vi) will not work anymore.
+ termcap xterm* hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
+ terminfo xterm* hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l
+
+# 80/132 column switching must be enabled for ^AW to work
+# change init sequence to not switch width
+ termcapinfo xterm* Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l
+
+# Make the output buffer large for (fast) xterms.
+# termcapinfo xterm* OL=10000
+ termcapinfo xterm* OL=100
+
+# tell screen that xterm can switch to dark background and has function
+# keys.
+ termcapinfo xterm* 'VR=\E[?5h:VN=\E[?5l'
+ termcapinfo xterm* 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
+ termcapinfo xterm* 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~'
+
+# special xterm hardstatus: use the window title.
+ termcapinfo xterm* 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
+
+#terminfo xterm 'vb=\E[?5h$<200/>\E[?5l'
+ termcapinfo xterm* 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l'
+
+# emulate part of the 'K' charset
+ termcapinfo xterm* 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337'
+
+# xterm-52 tweaks:
+# - uses background color for delete operations
+ termcapinfo xterm* be
+
+# Do not use xterm's alternative window buffer, it breaks scrollback (see bug #61195)
+ termcapinfo xterm*|xs ti@:te=\E[2J
+
+# WYSE TERMINALS
+# ===============================================================
+
+#wyse-75-42 must have flow control (xo = "terminal uses xon/xoff")
+#essential to have it here, as this is a slow terminal.
+ termcapinfo wy75-42 xo:hs@
+
+# New termcap sequences for cursor application mode.
+ termcapinfo wy* CS=\E[?1h:CE=\E[?1l:vi=\E[?25l:ve=\E[?25h:VR=\E[?5h:VN=\E[?5l:cb=\E[1K:CD=\E[1J
+
+
+# OTHER TERMINALS
+# ===============================================================
+
+# make hp700 termcap/info better
+ termcapinfo hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@'
+
+# Extend the vt100 desciption by some sequences.
+ termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
+ terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
+ termcapinfo linux C8
+# old rxvt versions also need this
+# termcapinfo rxvt C8
+
+
+# KEYBINDINGS
+# ==============================================================
+# The "bind" command assign keys to (internal) commands
+# SCREEN checks all the keys you type; you type the key
+# which is known as the "command character" then SCREEN
+# eats this key, too, and checks whether this key is
+# "bound" to a command. If so then SCREEN will execute it.
+#
+# The command "bind" allows you to chose which keys
+# will be assigned to the commands.
+#
+# Some commands are bound to several keys -
+# usually to both some letter and its corresponding
+# control key combination, eg the command
+# "(create) screen" is bound to both 'c' and '^C'.
+#
+# The following list shows the default bindings:
+#
+# break ^B b
+# clear C
+# colon :
+# copy ^[ [
+# detach ^D d
+# digraph ^V
+# displays *
+# dumptermcap .
+# fit F
+# flow ^F f
+# focus ^I
+# hardcopy h
+# help ?
+# history { }
+# info i
+# kill K k
+# lastmsg ^M m
+# license ,
+# log H
+# login L
+# meta x
+# monitor M
+# next ^@ ^N sp n
+# number N
+# only Q
+# other ^X
+# pow_break B
+# pow_detach D
+# prev ^H ^P p ^?
+# quit \
+# readbuf <
+# redisplay ^L l
+# remove X
+# removebuf =
+# reset Z
+# screen ^C c
+# select " '
+# silence _
+# split S
+# suspend ^Z z
+# time ^T t
+# title A
+# vbell ^G
+# version v
+# width W
+# windows ^W w
+# wrap ^R r
+# writebuf >
+# xoff ^S s
+# xon ^Q q
+# ^] paste .
+# - select -
+# 0 select 0
+# 1 select 1
+# 2 select 2
+# 3 select 3
+# 4 select 4
+# 5 select 5
+# 6 select 6
+# 7 select 7
+# 8 select 8
+# 9 select 9
+# I login on
+# O login off
+# ] paste .
+#
+
+# And here are the default bind commands if you need them:
+#
+# bind A title
+# bind C clear
+# bind D pow_detach
+# bind F fit
+# bind H log
+# bind I login on
+# bind K kill
+# bind L login
+# bind M monitor
+# bind N number
+# bind O login off
+# bind Q only
+# bind S split
+# bind W width
+# bind X remove
+# bind Z reset
+
+# Let's remove some dangerous key bindings ...
+ bind k
+ bind ^k
+# bind . dumptermcap # default
+ bind .
+# bind ^\ quit # default
+ bind ^\
+# bind \\ quit # default
+ bind \\
+# bind ^h ??? # default
+ bind ^h
+# bind h hardcopy # default
+ bind h
+
+# ... and make them better.
+ bind 'K' kill
+ bind 'I' login on
+ bind 'O' login off
+ bind '}' history
+
+# Yet another hack:
+# Prepend/append register [/] to the paste if ^a^] is pressed.
+# This lets me have autoindent mode in vi.
+ register [ "\033:se noai\015a"
+ register ] "\033:se ai\015a"
+ bind ^] paste [.]
+
+
+# hardstatus alwaysignore
+# hardstatus alwayslastline "%Lw"
+
+# Resize the current region. The space will be removed from or added to
+# the region below or if there's not enough space from the region above.
+ bind = resize =
+ bind + resize +3
+ bind - resize -3
+# bind _ resize max
+#
+# attrcolor u "-u b"
+# attrcolor b "R"
+
+# STARTUP SCREENS
+# ===============================================================
+# Defines the time screen delays a new message when one message
+# is currently displayed. The default is 1 second.
+# msgminwait 2
+
+# Time a message is displayed if screen is not disturbed by
+# other activity. The dafault is 5 seconds:
+# msgwait 2
+
+# Briefly show the version number of this starting
+# screen session - but only for *one* second:
+# msgwait 1
+# version
+
+# Welcome the user:
+# echo "welcome :-)"
+# echo "I love you today."
+
+# Uncomment one/some following lines to automatically let
+# SCREEN start some programs in the given window numbers:
+# screen -t MAIL 0 mutt
+# screen -t EDIT 1 vim
+# screen -t GOOGLE 2 links http://www.google.com
+# screen -t NEWS 3 slrn
+# screen -t WWW 4 links http://www.math.fu-berlin.de/~guckes/
+# screen 5
+# screen 6
+
+# Set the environment variable var to value string. If only var is specified,
+# you'll be prompted to enter a value. If no parameters are specified,
+# you'll be prompted for both variable and value. The environment is
+# inherited by all subsequently forked shells.
+# setenv PROMPT_COMMAND 'echo -n -e "\033k\033\134"'
+
+# Don't you want to start programs which need a DISPLAY ?
+# setenv DISPLAY ''
diff --git a/app-misc/screen/metadata.xml b/app-misc/screen/metadata.xml
new file mode 100644
index 0000000..fd200de
--- /dev/null
+++ b/app-misc/screen/metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>swegener@gentoo.org</email>
+ <description>Primary Maintainer</description>
+ </maintainer>
+ <maintainer type="project">
+ <email>shell-tools@gentoo.org</email>
+ <name>Gentoo Shell Tools Project</name>
+ </maintainer>
+ <longdescription>
+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). There is a
+scrollback history buffer for each virtual terminal and a copy-and-paste
+mechanism that allows the user to move text regions between windows. When screen
+is called, it creates a single window with a shell in it (or the specified
+command) and then gets out of your way so that you can use the program as you
+normally would. Then, at any time, you can create new (full-screen) windows with
+other programs in them (including more shells), kill the current window, view a
+list of the active windows, turn output logging on and off, copy text between
+windows, view the scrollback history, switch between windows, etc. All windows
+run their programs completely independent of each other. Programs continue to
+run when their window is currently not visible and even when the whole screen
+session is detached from the users terminal.
+</longdescription>
+ <use>
+ <flag name="multiuser">Enable multiuser support (by setting correct
+ permissions)</flag>
+ <flag name="nethack">Express error messages in nethack style</flag>
+ </use>
+</pkgmetadata>
diff --git a/app-misc/screen/screen-4.3.1-r1.ebuild b/app-misc/screen/screen-4.3.1-r1.ebuild
new file mode 100644
index 0000000..d80b404
--- /dev/null
+++ b/app-misc/screen/screen-4.3.1-r1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools eutils flag-o-matic pam toolchain-funcs user
+
+DESCRIPTION="Full-screen window manager that multiplexes physical terminals between several processes"
+HOMEPAGE="https://www.gnu.org/software/screen/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd ~hppa-hpux ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug nethack pam selinux multiuser"
+
+CDEPEND="
+ >=sys-libs/ncurses-5.2:0=
+ pam? ( virtual/pam )"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-screen )"
+DEPEND="${CDEPEND}
+ sys-apps/texinfo"
+
+# Patches:
+# - Don't use utempter even if it is found on the system.
+# - Bug 559394.
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
+ "${FILESDIR}"/${PN}-4.3.1-ansi.c.patch
+ "${FILESDIR}"/${PN}-4.3.1-termlen.patch
+)
+
+pkg_setup() {
+ # Make sure utmp group exists, as it's used later on.
+ enewgroup utmp 406
+}
+
+src_prepare() {
+ # Apply patches.
+ epatch "${PATCHES[@]}"
+
+ # 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
+
+ # Fix manpage.
+ sed -i \
+ -e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+ -e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
+ -e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+ -e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
+ -e "s:/local/screens/S-:${EPREFIX}/tmp/screen/S-:g" \
+ doc/screen.1 \
+ || die
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
+ fi
+
+ # reconfigure
+ eautoreconf
+}
+
+src_configure() {
+ append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # https://lists.gnu.org/archive/html/screen-devel/2014-04/msg00095.html
+ append-cppflags -D_XOPEN_SOURCE \
+ -D_XOPEN_SOURCE_EXTENDED=1 \
+ -D__EXTENSIONS__
+ append-libs -lsocket -lnsl
+ fi
+
+ use nethack || append-cppflags "-DNONETHACK"
+ use debug && append-cppflags "-DDEBUG"
+
+ econf \
+ --with-socket-dir="${EPREFIX}/tmp/screen" \
+ --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
+ --with-pty-mode=0620 \
+ --with-pty-group=5 \
+ --enable-rxvt_osc \
+ --enable-telnet \
+ --enable-colors256 \
+ $(use_enable pam)
+}
+
+src_compile() {
+ LC_ALL=POSIX emake comm.h term.h
+ emake osdef.h
+
+ emake -C doc screen.info
+ default
+}
+
+src_install() {
+ local tmpfiles_perms tmpfiles_group
+
+ dobin screen
+
+ if use multiuser || use prefix
+ then
+ fperms 4755 /usr/bin/screen
+ tmpfiles_perms="0755"
+ tmpfiles_group="root"
+ else
+ fowners root:utmp /usr/bin/screen
+ fperms 2755 /usr/bin/screen
+ tmpfiles_perms="0775"
+ tmpfiles_group="utmp"
+ fi
+
+ dodir /etc/tmpfiles.d
+ echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
+ > "${ED}"/etc/tmpfiles.d/screen.conf
+
+ insinto /usr/share/screen
+ doins terminfo/{screencap,screeninfo.src}
+ insinto /usr/share/screen/utf8encodings
+ doins utf8encodings/??
+ insinto /etc
+ doins "${FILESDIR}"/screenrc
+
+ pamd_mimic_system screen auth
+
+ dodoc \
+ README ChangeLog INSTALL TODO NEWS* patchlevel.h \
+ doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
+
+ doman doc/screen.1
+ doinfo doc/screen.info
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]
+ then
+ elog "Some dangerous key bindings have been removed or changed to more safe values."
+ elog "We enable some xterm hacks in our default screenrc, which might break some"
+ elog "applications. Please check /etc/screenrc for information on these changes."
+ fi
+
+ # Add /tmp/screen in case it doesn't exist yet. This should solve
+ # problems like bug #508634 where tmpfiles.d isn't in effect.
+ local rundir="${EROOT%/}/tmp/screen"
+ if [[ ! -d ${rundir} ]] ; then
+ if use multiuser || use prefix ; then
+ tmpfiles_group="root"
+ else
+ tmpfiles_group="utmp"
+ fi
+ mkdir -m 0775 "${rundir}"
+ chgrp ${tmpfiles_group} "${rundir}"
+ fi
+
+ ewarn "This revision changes the screen socket location to ${rundir}"
+}
diff --git a/app-misc/screen/screen-9999.ebuild b/app-misc/screen/screen-9999.ebuild
new file mode 100644
index 0000000..3038ad6
--- /dev/null
+++ b/app-misc/screen/screen-9999.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
+EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
+
+inherit eutils flag-o-matic toolchain-funcs pam autotools user git-r3
+
+DESCRIPTION="Full-screen window manager that multiplexes physical terminals between several processes"
+HOMEPAGE="https://www.gnu.org/software/screen/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="debug nethack pam selinux multiuser"
+
+CDEPEND="
+ >=sys-libs/ncurses-5.2:0=
+ pam? ( virtual/pam )"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-screen )"
+DEPEND="${CDEPEND}
+ sys-apps/texinfo"
+
+S="${WORKDIR}"/${P}/src
+
+pkg_setup() {
+ # Make sure utmp group exists, as it's used later on.
+ enewgroup utmp 406
+}
+
+src_prepare() {
+ # Don't use utempter even if it is found on the system
+ epatch "${FILESDIR}"/${PN}-4.3.0-no-utempter.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
+
+ # Fix manpage.
+ sed -i \
+ -e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+ -e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
+ -e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+ -e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
+ -e "s:/local/screens/S-:${EPREFIX}/tmp/screen/S-:g" \
+ doc/screen.1 \
+ || die
+
+ # reconfigure
+ eautoreconf
+}
+
+src_configure() {
+ append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+ [[ ${CHOST} == *-solaris* ]] && append-libs -lsocket -lnsl
+
+ use nethack || append-cppflags "-DNONETHACK"
+ use debug && append-cppflags "-DDEBUG"
+
+ econf \
+ --with-socket-dir="${EPREFIX}/tmp/screen" \
+ --with-sys-screenrc="${EPREFIX}/etc/screenrc" \
+ --with-pty-mode=0620 \
+ --with-pty-group=5 \
+ --enable-telnet \
+ $(use_enable pam)
+}
+
+src_compile() {
+ LC_ALL=POSIX emake comm.h term.h
+
+ emake -C doc screen.info
+ default
+}
+
+src_install() {
+ local tmpfiles_perms tmpfiles_group
+
+ dobin screen
+
+ if use multiuser || use prefix
+ then
+ fperms 4755 /usr/bin/screen
+ tmpfiles_perms="0755"
+ tmpfiles_group="root"
+ else
+ fowners root:utmp /usr/bin/screen
+ fperms 2755 /usr/bin/screen
+ tmpfiles_perms="0775"
+ tmpfiles_group="utmp"
+ fi
+
+ dodir /etc/tmpfiles.d
+ echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
+ >"${ED}"/etc/tmpfiles.d/screen.conf
+
+ insinto /usr/share/screen
+ doins terminfo/{screencap,screeninfo.src}
+ insinto /usr/share/screen/utf8encodings
+ doins utf8encodings/??
+ insinto /etc
+ doins "${FILESDIR}"/screenrc
+
+ pamd_mimic_system screen auth
+
+ dodoc \
+ README ChangeLog INSTALL TODO NEWS* \
+ doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
+
+ doman doc/screen.1
+ doinfo doc/screen.info
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]
+ then
+ elog "Some dangerous key bindings have been removed or changed to more safe values."
+ elog "We enable some xterm hacks in our default screenrc, which might break some"
+ elog "applications. Please check /etc/screenrc for information on these changes."
+ fi
+
+ # Add /tmp/screen in case it doesn't exist yet. This should solve
+ # problems like bug #508634 where tmpfiles.d isn't in effect.
+ local rundir="${EROOT%/}/tmp/screen"
+ if [[ ! -d ${rundir} ]] ; then
+ if use multiuser || use prefix ; then
+ tmpfiles_group="root"
+ else
+ tmpfiles_group="utmp"
+ fi
+ mkdir -m 0775 "${rundir}"
+ chgrp ${tmpfiles_group} "${rundir}"
+ fi
+
+ ewarn "This revision changes the screen socket location to /run/screen."
+}
diff --git a/profiles/categories b/profiles/categories
index 0fc669e..86b90c1 100644
--- a/profiles/categories
+++ b/profiles/categories
@@ -1,6 +1,7 @@
app-admin
app-doc
app-emulation
+app-misc
app-vim
dev-libs
dev-python
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2016-06-13 12:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-13 12:37 [gentoo-commits] dev/bircoph:master commit in: profiles/, app-misc/screen/, app-misc/screen/files/ Andrew Savchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox