+++ /dev/null
-Author: Julien Cristau <jcristau@debian.org>
-Debian-Bug: #644788
-
-Author: Axel Beckert <abe@debian.org>
-Debian-Bug: #684342
-
-The following patch, while not all that pretty, seems to allow me to
-attach to a screen started with either the squeeze or sid version.
-I'm sure there's corner cases, but.
-
-Cheers,
-Julien
-
-Index: screen/screen.h
-===================================================================
---- screen.orig/screen.h 2012-08-09 01:01:28.000000000 +0200
-+++ screen/screen.h 2012-08-09 01:01:28.000000000 +0200
-@@ -240,6 +240,57 @@ struct msg
- } m;
- };
-
-+struct old_msg
-+{
-+ int protocol_revision; /* reduce harm done by incompatible messages */
-+ int type;
-+ char m_tty[MAXPATHLEN]; /* ttyname */
-+ union
-+ {
-+ struct
-+ {
-+ int lflag;
-+ int aflag;
-+ int flowflag;
-+ int hheight; /* size of scrollback buffer */
-+ int nargs;
-+ char line[MAXPATHLEN];
-+ char dir[MAXPATHLEN];
-+ char screenterm[20]; /* is screen really "screen" ? */
-+ }
-+ create;
-+ struct
-+ {
-+ char auser[20 + 1]; /* username */
-+ int apid; /* pid of frontend */
-+ int adaptflag; /* adapt window size? */
-+ int lines, columns; /* display size */
-+ 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 */
-+ int encoding; /* encoding of display */
-+ }
-+ attach;
-+ struct
-+ {
-+ char duser[20 + 1]; /* username */
-+ int dpid; /* pid of frontend */
-+ }
-+ detach;
-+ struct
-+ {
-+ char auser[20 + 1]; /* username */
-+ int nargs;
-+ char cmd[MAXPATHLEN]; /* command */
-+ int apid; /* pid of frontend */
-+ char preselect[20];
-+ }
-+ command;
-+ char message[MAXPATHLEN * 2];
-+ } m;
-+};
-+
- /*
- * And the signals the attacher receives from the backend
- */
-Index: screen/socket.c
-===================================================================
---- screen.orig/socket.c 2012-08-09 01:01:28.000000000 +0200
-+++ screen/socket.c 2012-08-09 01:01:29.000000000 +0200
-@@ -1067,7 +1067,9 @@ ReceiveMsg()
- }
- if (left > 0)
- {
-- if (left != sizeof(m))
-+ if (left == sizeof(struct msg) - sizeof(struct old_msg))
-+ ;/* old format message, ignore */
-+ else if (left != sizeof(m))
- Msg(0, "Message %d of %d bytes too small", left, (int)sizeof(m));
- else
- debug("No data on socket.\n");
-Index: screen/attacher.c
-===================================================================
---- screen.orig/attacher.c 2012-08-09 01:01:28.000000000 +0200
-+++ screen/attacher.c 2012-08-09 01:32:08.000000000 +0200
-@@ -133,6 +133,48 @@ struct msg *m;
- return 0;
- }
-
-+int
-+WriteOldMessage(struct msg *m)
-+{
-+ sleep(1); /* give the server some time to reopen the pipe */
-+ if (m->type == MSG_ATTACH && (m->m.attach.detachfirst == MSG_ATTACH ||
-+ m->m.attach.detachfirst == MSG_DETACH ||
-+ m->m.attach.detachfirst == MSG_POW_DETACH))
-+ {
-+ struct old_msg old_m;
-+ int s;
-+ int r, l = sizeof(old_m);
-+
-+ s = MakeClientSocket(0);
-+ if (s < 0)
-+ return 0;
-+ old_m.protocol_revision = (('m'<<24) | ('s'<<16) | ('g'<<8) | 0);
-+ old_m.type = m->type;
-+ memcpy(old_m.m_tty, m->m_tty, sizeof(old_m.m_tty));
-+ memcpy(old_m.m.attach.auser, m->m.attach.auser, sizeof(old_m.m.attach.auser));
-+ old_m.m.attach.apid = m->m.attach.apid;
-+ old_m.m.attach.adaptflag = m->m.attach.adaptflag;
-+ old_m.m.attach.lines = m->m.attach.lines;
-+ old_m.m.attach.columns = m->m.attach.columns;
-+ memcpy(old_m.m.attach.preselect, m->m.attach.preselect, sizeof(old_m.m.attach.preselect));
-+ old_m.m.attach.esc = m->m.attach.esc;
-+ old_m.m.attach.meta_esc = m->m.attach.meta_esc;
-+ memcpy(old_m.m.attach.envterm, m->m.attach.envterm, sizeof(old_m.m.attach.envterm));
-+ old_m.m.attach.encoding = m->m.attach.encoding;
-+ while(l > 0)
-+ {
-+ r = write(s, (char *)&old_m + (sizeof(struct old_msg) - l), l);
-+ if (r == -1 && errno == EINTR)
-+ continue;
-+ if (r == -1 || r == 0)
-+ return -1;
-+ l -= r;
-+ }
-+ close(s);
-+ }
-+ return 0;
-+}
-+
-
- int
- Attach(how)
-@@ -397,6 +439,7 @@ int how;
- if (WriteMessage(lasts, &m))
- Panic(errno, "WriteMessage");
- close(lasts);
-+ WriteOldMessage(&m);
- debug1("Attach(%d): sent\n", m.type);
- #ifdef MULTIUSER
- if (multi && (how == MSG_ATTACH || how == MSG_CONT))
---- screen-4.2.1/doc/screen.1.orig 2014-07-20 09:46:39.879173376 +0200
-+++ screen-4.2.1/doc/screen.1 2014-07-20 09:51:20.829161584 +0200
-@@ -1143,7 +1143,7 @@
+--- screen-4.6.1/doc/screen.1.orig 2017-07-12 19:34:02.890716565 +0200
++++ screen-4.6.1/doc/screen.1 2017-07-12 19:34:56.057382623 +0200
+@@ -1226,7 +1226,7 @@
.PP
Change the filename used for reading and writing with the paste buffer.
If the optional argument to the \*Qbufferfile\*U command is omitted,
The following example will paste the system's password file into
the
.I screen
-@@ -1447,7 +1447,7 @@
- .br
- .ti -2n
+@@ -1540,7 +1540,7 @@
+ \fBA\fP toggles in append mode and sets a (second) mark.
+ .PP
\fB>\fP sets the (second) mark and writes the contents of the paste buffer to
-the screen-exchange file (/tmp/screen\-exchange per default) once copy-mode is
+the screen-exchange file ($HOME/.screen\-exchange per default) once copy-mode is
finished.
- .br
+ .PP
This example demonstrates how to dump the whole scrollback buffer
-@@ -3474,7 +3474,7 @@
+@@ -3651,7 +3651,7 @@
users on the same host. If an encoding is specified the paste buffer
is recoded on the fly to match the encoding.
The filename can be set with the \fIbufferfile\fP
-command and defaults to \*Q/tmp/screen\-exchange\*U.
+command and defaults to \*Q$HOME/.screen\-exchange\*U.
- .sp
- .ne 3
+ .RE
+ .TP
.BR "writelock " [ on | "off\fR|\fBauto\fR]"
-@@ -4870,7 +4870,7 @@
+@@ -5030,7 +5030,7 @@
Written by the "termcap" output function
.IP /tmp/screens/screen\-exchange
or
-# TODO: check interoperability with 4.0.x and 4.1.x (or don't care about it):
-# 4.2.1 string buffer sizes are enlargered upstream, but to different values than Debian's 4.1.x
-#
-# Conditional build:
-%bcond_without fifo # force using fifos even if sockets detected
-
# TODO
# - from changelog: 'maxwin' can now be used to increase the number of maximum windows.
Summary: Screen - Manages multiple sessions on one tty
Summary(tr.UTF-8): Bir uçbirimde birden fazla oturumu düzenler
Summary(uk.UTF-8): Менеджер екрану, що підтримує кілька логінів з одного терміналу
Name: screen
-Version: 4.5.1
+Version: 4.6.1
Release: 1
License: GPL v3+
Group: Applications/Terminal
Source0: http://ftp.gnu.org/gnu/screen/%{name}-%{version}.tar.gz
-# Source0-md5: a8c5da2f42f8a18fa4dada2419d1549b
+# Source0-md5: 132c893aabfaf2020074790215c8cacd
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: 236166e774cee788cf594b05dd1dd70d
Source2: %{name}.pamd
Patch17: %{name}-E3.patch
Patch18: %{name}-4.1.0-suppress_remap.patch
Patch22: 52fix_%{name}_utf8_nfd.patch
-Patch24: 60-644788-%{name}-4.1.0-4.0.3-interoperability.patch
URL: http://www.gnu.org/software/screen/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.60
BuildRequires: automake
BuildRequires: ncurses-devel >= 5.0
BuildRequires: pam-devel
%patch17 -p2
%patch18 -p1
%patch22 -p1
-%patch24 -p1
%build
%{__aclocal}
%{__autoconf}
# --enable-locale vs --enable-use-locale - https://savannah.gnu.org/bugs/index.php?37528
CFLAGS="%{rpmcflags} -DMAXWIN=256"
-%{?with_fifo:nore=1} \
%configure \
--enable-pam \
--enable-colors256 \
--with-pty-group=5 \
--disable-socket-dir
-%if %{with fifo}
-if ! grep -q "define.*NAMEDPIPE.*1" config.h; then
- echo "bcond with fifo but fifos not enabled!"
- exit 1
-fi
-%endif
-
%{__make} -j1
cd doc