diff --git a/screen-4.0.1-args.patch b/screen-4.0.1-args.patch deleted file mode 100644 index e404fb7..0000000 --- a/screen-4.0.1-args.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- ansi.c.orig 2003-12-04 10:59:05.000000000 -0500 -+++ ansi.c 2003-12-04 10:59:20.000000000 -0500 -@@ -559,7 +559,7 @@ - { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': -- if (curr->w_NumArgs < MAXARGS) -+ if (curr->w_NumArgs >= 0 && curr->w_NumArgs < MAXARGS) - { - if (curr->w_args[curr->w_NumArgs] < 100000000) - curr->w_args[curr->w_NumArgs] = ---- resize.c.old 2003-11-27 02:55:07.000000000 +0200 -+++ resize.c 2003-11-27 02:58:33.000000000 +0200 -@@ -682,6 +682,17 @@ - if (wi == 0) - he = hi = 0; - -+ if (wi > 1000) -+ { -+ Msg(0, "Window width too large, truncated"); -+ wi = 1000; -+ } -+ if (he > 1000) -+ { -+ Msg(0, "Window height too large, truncated"); -+ he = 1000; -+ } -+ - if (p->w_width == wi && p->w_height == he && p->w_histheight == hi) - { - debug("ChangeWindowSize: No change.\n"); diff --git a/screen-4.0.2-maxstr.patch b/screen-4.0.2-maxstr.patch deleted file mode 100644 index 466e2f1..0000000 --- a/screen-4.0.2-maxstr.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- screen-4.0.2/screen.h.maxstr 2006-07-10 13:37:11.000000000 +0200 -+++ screen-4.0.2/screen.h 2006-07-10 13:36:36.000000000 +0200 -@@ -86,7 +86,7 @@ - - #define Ctrl(c) ((c)&037) - --#define MAXSTR 256 -+#define MAXSTR 4096 - #define MAXARGS 64 - #define MSGWAIT 5 - #define MSGMINWAIT 1 diff --git a/screen-4.0.3-ipv6.patch b/screen-4.0.3-ipv6.patch deleted file mode 100644 index b7b6f75..0000000 --- a/screen-4.0.3-ipv6.patch +++ /dev/null @@ -1,323 +0,0 @@ ---- screen-4.0.3/window.h.ipv6 2003-08-21 16:57:30.000000000 +0200 -+++ screen-4.0.3/window.h 2006-11-15 13:36:57.000000000 +0100 -@@ -254,7 +254,7 @@ - struct display *w_zdisplay; - #endif - #ifdef BUILTIN_TELNET -- struct sockaddr_in w_telsa; -+ struct sockaddr_storage w_telsa; - char w_telbuf[IOSIZE]; - int w_telbufl; - char w_telmopts[256]; ---- screen-4.0.3/window.c.ipv6 2003-12-05 14:45:41.000000000 +0100 -+++ screen-4.0.3/window.c 2006-11-15 13:39:27.000000000 +0100 -@@ -582,6 +582,13 @@ - n = pp - wtab; - debug1("Makewin creating %d\n", n); - -+#ifdef BUILTIN_TELNET -+ if(!strcmp(nwin.args[0], "//telnet")) { -+ type = W_TYPE_TELNET; -+ TtyName = "telnet"; -+ } -+ else -+#endif - if ((f = OpenDevice(nwin.args, nwin.lflag, &type, &TtyName)) < 0) - return -1; - -@@ -736,7 +743,7 @@ - #ifdef BUILTIN_TELNET - if (type == W_TYPE_TELNET) - { -- if (TelConnect(p)) -+ if (TelOpenAndConnect(p)) - { - FreeWindow(p); - return -1; -@@ -834,6 +841,13 @@ - int lflag, f; - - lflag = nwin_default.lflag; -+#ifdef BUILTIN_TELNET -+ if(!strcmp(p->w_cmdargs[0], "//telnet")) { -+ p->w_type = W_TYPE_TELNET; -+ TtyName = "telnet"; -+ } -+ else -+#endif - if ((f = OpenDevice(p->w_cmdargs, lflag, &p->w_type, &TtyName)) < 0) - return -1; - -@@ -864,7 +878,7 @@ - #ifdef BUILTIN_TELNET - if (p->w_type == W_TYPE_TELNET) - { -- if (TelConnect(p)) -+ if (TelOpenAndConnect(p)) - return -1; - } - else -@@ -1007,16 +1021,6 @@ - - if (!arg) - return -1; --#ifdef BUILTIN_TELNET -- if (strcmp(arg, "//telnet") == 0) -- { -- f = TelOpen(args + 1); -- lflag = 0; -- *typep = W_TYPE_TELNET; -- *namep = "telnet"; -- } -- else --#endif - if ((stat(arg, &st)) == 0 && S_ISCHR(st.st_mode)) - { - if (access(arg, R_OK | W_OK) == -1) ---- screen-4.0.3/teln.c.ipv6 2003-09-08 16:26:56.000000000 +0200 -+++ screen-4.0.3/teln.c 2006-11-15 13:36:57.000000000 +0100 -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #include "config.h" - -@@ -37,12 +38,13 @@ - extern struct layer *flayer; - extern int visual_bell; - extern char screenterm[]; -+extern int af; - - static void TelReply __P((struct win *, char *, int)); - static void TelDocmd __P((struct win *, int, int)); - static void TelDosub __P((struct win *)); -- --#define TEL_DEFPORT 23 -+// why TEL_DEFPORT has " -+#define TEL_DEFPORT "23" - #define TEL_CONNECTING (-2) - - #define TC_IAC 255 -@@ -99,86 +101,78 @@ - } - - int --TelOpen(args) --char **args; --{ -- int fd; -- int on = 1; -- -- if ((fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) -- { -- Msg(errno, "TelOpen: socket"); -- return -1; -- } -- if (setsockopt(fd, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on))) -- Msg(errno, "TelOpen: setsockopt SO_OOBINLINE"); -- return fd; --} -- --int --TelConnect(p) --struct win *p; --{ -- int port = TEL_DEFPORT; -- struct hostent *hp; -- char **args; -+TelOpenAndConnect(struct win *p) { -+ int fd, on = 1; - char buf[256]; - -- args = p->w_cmdargs + 1; -- -- if (!*args) -- { -- Msg(0, "Usage: screen //telnet host [port]"); -- return -1; -- } -- if (args[1]) -- port = atoi(args[1]); -- p->w_telsa.sin_family = AF_INET; -- if((p->w_telsa.sin_addr.s_addr = inet_addr(*args)) == -1) -- { -- if ((hp = gethostbyname(*args)) == NULL) -- { -- Msg(0, "unknown host: %s", *args); -- return -1; -- } -- if (hp->h_length != sizeof(p->w_telsa.sin_addr.s_addr) || hp->h_addrtype != AF_INET) -- { -- Msg(0, "Bad address type for %s", hp->h_name); -- return -1; -- } -- bcopy((char *)hp->h_addr,(char *)&p->w_telsa.sin_addr.s_addr, hp->h_length); -- p->w_telsa.sin_family = hp->h_addrtype; -- } -- p->w_telsa.sin_port = htons(port); -- if (port != TEL_DEFPORT) -- sprintf(buf, "Trying %s %d...", inet_ntoa(p->w_telsa.sin_addr), port); -- else -- sprintf(buf, "Trying %s...", inet_ntoa(p->w_telsa.sin_addr)); -- WriteString(p, buf, strlen(buf)); -- if (connect(p->w_ptyfd, (struct sockaddr *)&p->w_telsa, sizeof(p->w_telsa))) -- { -- if (errno == EINPROGRESS) -- { -- p->w_telstate = TEL_CONNECTING; -- p->w_telconnev.fd = p->w_ptyfd; -- p->w_telconnev.handler = tel_connev_fn; -- p->w_telconnev.data = (char *)p; -- p->w_telconnev.type = EV_WRITE; -- p->w_telconnev.pri = 1; -- debug("telnet connect in progress...\n"); -- evenq(&p->w_telconnev); -- } -- else -- { -- Msg(errno, "TelOpen: connect"); -- return -1; -- } -- } -- else -- WriteString(p, "connected.\r\n", 12); -- if (port == TEL_DEFPORT) -- TelReply(p, (char *)tn_init, sizeof(tn_init)); -- return 0; -+ struct addrinfo hints, *res0, *res; -+ -+ if (!(p->w_cmdargs[1])) { -+ Msg(0, "Usage: screen //telnet host [port]"); -+ return -1; -+ } -+ -+ memset(&hints, 0, sizeof(hints)); -+ hints.ai_family = af; -+ hints.ai_socktype = SOCK_STREAM; -+ hints.ai_protocol = IPPROTO_TCP; -+ if(getaddrinfo(p->w_cmdargs[1], p->w_cmdargs[2] ? p->w_cmdargs[2] : TEL_DEFPORT, -+ &hints, &res0)) { -+ Msg(0, "unknown host: %s", p->w_cmdargs[1]); -+ return -1; -+ } -+ -+ for(res = res0; res; res = res->ai_next) { -+ if((fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol)) == -1) { -+ if(res->ai_next) -+ continue; -+ else { -+ Msg(errno, "TelOpenAndConnect: socket"); -+ freeaddrinfo(res0); -+ return -1; -+ } -+ } -+ -+ if (setsockopt(fd, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on))) -+ Msg(errno, "TelOpenAndConnect: setsockopt SO_OOBINLINE"); -+ -+ if (p->w_cmdargs[2] && strcmp(p->w_cmdargs[2], TEL_DEFPORT)) -+ snprintf(buf, 256, "Trying %s %s...", p->w_cmdargs[1], p->w_cmdargs[2]); -+ else -+ snprintf(buf, 256, "Trying %s...", p->w_cmdargs[1]); -+ WriteString(p, buf, strlen(buf)); -+ if (connect(fd, res->ai_addr, res->ai_addrlen)) { -+ if (errno == EINPROGRESS) { -+ p->w_telstate = TEL_CONNECTING; -+ p->w_telconnev.fd = fd; -+ p->w_telconnev.handler = tel_connev_fn; -+ p->w_telconnev.data = (char *)p; -+ p->w_telconnev.type = EV_WRITE; -+ p->w_telconnev.pri = 1; -+ debug("telnet connect in progress...\n"); -+ evenq(&p->w_telconnev); -+ } -+ else { -+ close(fd); -+ if(res->ai_next) -+ continue; -+ else { -+ Msg(errno, "TelOpenAndConnect: connect"); -+ freeaddrinfo(res0); -+ return -1; -+ } -+ } -+ } -+ else -+ WriteString(p, "connected.\r\n", 12); -+ if (!(p->w_cmdargs[2] && strcmp(p->w_cmdargs[2], TEL_DEFPORT))) -+ TelReply(p, (char *)tn_init, sizeof(tn_init)); -+ p->w_ptyfd = fd; -+ memcpy(&p->w_telsa, &res->ai_addr, sizeof(res->ai_addr)); -+ freeaddrinfo(res0); -+ return 0; -+ } -+ return -1; - } - - int ---- screen-4.0.3/help.c.ipv6 2003-09-08 16:25:33.000000000 +0200 -+++ screen-4.0.3/help.c 2006-11-15 13:36:57.000000000 +0100 -@@ -49,6 +49,10 @@ - { - printf("Use: %s [-opts] [cmd [args]]\n", myname); - printf(" or: %s -r [host.tty]\n\nOptions:\n", myname); -+#ifdef BUILTIN_TELNET -+ printf("-4 Use IPv4.\n"); -+ printf("-6 Use IPv6.\n"); -+#endif - printf("-a Force all capabilities into each window's termcap.\n"); - printf("-A -[r|R] Adapt all windows to the new display width & height.\n"); - printf("-c file Read configuration file instead of '.screenrc'.\n"); ---- screen-4.0.3/screen.c.ipv6 2003-09-08 16:26:41.000000000 +0200 -+++ screen-4.0.3/screen.c 2006-11-15 13:36:57.000000000 +0100 -@@ -231,8 +231,9 @@ - struct win *fore; - struct win *windows; - struct win *console_window; -- -- -+#ifdef BUILTIN_TELNET -+int af; -+#endif - - /* - * Do this last -@@ -471,6 +472,9 @@ - nwin = nwin_undef; - nwin_options = nwin_undef; - strcpy(screenterm, "screen"); -+#ifdef BUILTIN_TELNET -+ af = AF_UNSPEC; -+#endif - - logreopen_register(lf_secreopen); - -@@ -505,6 +509,14 @@ - { - switch (*ap) - { -+#ifdef BUILTIN_TELNET -+ case '4': -+ af = AF_INET; -+ break; -+ case '6': -+ af = AF_INET6; -+ break; -+#endif - case 'a': - nwin_options.aflag = 1; - break; ---- screen-4.0.3/extern.h.ipv6 2003-08-22 14:27:57.000000000 +0200 -+++ screen-4.0.3/extern.h 2006-11-15 13:36:57.000000000 +0100 -@@ -446,8 +446,7 @@ - - /* teln.c */ - #ifdef BUILTIN_TELNET --extern int TelOpen __P((char **)); --extern int TelConnect __P((struct win *)); -+extern int TelOpenAndConnect __P((struct win *)); - extern int TelIsline __P((struct win *p)); - extern void TelProcessLine __P((char **, int *)); - extern int DoTelnet __P((char *, int *, int)); diff --git a/screen-4.0.3-libs.patch b/screen-4.0.3-libs.patch deleted file mode 100644 index a548787..0000000 --- a/screen-4.0.3-libs.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff -up screen-4.0.3/configure.in.libs screen-4.0.3/configure.in ---- screen-4.0.3/configure.in.libs 2003-06-03 13:58:24.000000000 +0200 -+++ screen-4.0.3/configure.in 2008-02-26 13:58:29.000000000 +0100 -@@ -196,7 +196,9 @@ AC_EGREP_CPP(yes, - ], LIBS="$LIBS -lsocket -linet";seqptx=1) - - oldlibs="$LIBS" --LIBS="$LIBS -lelf" -+# Humm we don't actually need to link against libelf for linux -+#LIBS="$LIBS -lelf" -+LIBS="$LIBS" - AC_CHECKING(SVR4) - AC_TRY_LINK([#include - ],, -@@ -643,14 +645,10 @@ dnl - AC_CHECKING(for tgetent) - AC_TRY_LINK(,tgetent((char *)0, (char *)0);,, - olibs="$LIBS" --LIBS="-lcurses $olibs" --AC_CHECKING(libcurses) -+LIBS="-ltinfo $olibs" -+AC_CHECKING(libtinfo) - AC_TRY_LINK(,[ --#ifdef __hpux --__sorry_hpux_libcurses_is_totally_broken_in_10_10(); --#else - tgetent((char *)0, (char *)0); --#endif - ],, - LIBS="-ltermcap $olibs" - AC_CHECKING(libtermcap) -@@ -666,7 +664,7 @@ AC_MSG_ERROR(!!! no tgetent - no screen) - AC_TRY_RUN([ - main() - { -- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1); -+ return 1; - }], AC_NOTE(- you use the termcap database), - AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO)) - AC_CHECKING(ospeed) -@@ -864,9 +862,6 @@ fi - dnl - dnl **** loadav **** - dnl --AC_CHECKING(for libutil(s)) --test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils" --test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil" - - AC_CHECKING(getloadavg) - AC_TRY_LINK(,[getloadavg((double *)0, 0);], diff --git a/screen-4.0.3-stropts.patch b/screen-4.0.3-stropts.patch deleted file mode 100644 index d6cbed7..0000000 --- a/screen-4.0.3-stropts.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -up screen-4.0.3/tty.sh.stropts screen-4.0.3/tty.sh ---- screen-4.0.3/tty.sh.stropts 2003-09-08 16:24:25.000000000 +0200 -+++ screen-4.0.3/tty.sh 2008-04-07 11:28:34.000000000 +0200 -@@ -76,7 +76,7 @@ exit 0 - #endif - - #include "config.h" --#ifdef SVR4 -+#if 0 - #include /* for I_POP */ - #endif - -diff -up screen-4.0.3/screen.c.stropts screen-4.0.3/screen.c ---- screen-4.0.3/screen.c.stropts 2008-04-07 11:25:21.000000000 +0200 -+++ screen-4.0.3/screen.c 2008-04-07 11:29:14.000000000 +0200 -@@ -50,7 +50,7 @@ - - #include "config.h" - --#ifdef SVR4 -+#if 0 - # include - #endif - -diff -up screen-4.0.3/process.c.stropts screen-4.0.3/process.c ---- screen-4.0.3/process.c.stropts 2003-09-18 14:53:54.000000000 +0200 -+++ screen-4.0.3/process.c 2008-04-07 11:29:47.000000000 +0200 -@@ -37,7 +37,7 @@ - #include "config.h" - - /* for solaris 2.1, Unixware (SVR4.2) and possibly others: */ --#ifdef SVR4 -+#if 0 - # include - #endif - -diff -up screen-4.0.3/pty.c.stropts screen-4.0.3/pty.c ---- screen-4.0.3/pty.c.stropts 2003-09-08 16:26:18.000000000 +0200 -+++ screen-4.0.3/pty.c 2008-04-07 11:30:07.000000000 +0200 -@@ -34,7 +34,7 @@ - #endif - - /* for solaris 2.1, Unixware (SVR4.2) and possibly others */ --#ifdef HAVE_SVR4_PTYS -+#if 0 - # include - #endif - diff --git a/screen.spec b/screen.spec index ace6588..b29c624 100644 --- a/screen.spec +++ b/screen.spec @@ -1,5 +1,5 @@ Name: screen -Version: 4.9.1 +Version: 5.0.0 Release: 1mamba Summary: A screen manager that multiplexes a physical terminal between several processes Group: Applications/Shells @@ -10,21 +10,13 @@ URL: http://www.gnu.org/software/screen/ Source0: ftp://ftp.gnu.org/gnu/screen/screen-%{version}.tar.gz Source1: screen-pamfile Source2: screen-tmpfiles.conf -Patch0: screen-4.0.3-libs.patch -# Some tweaks of the default screenrc Patch1: screen-4.0.2-screenrc.patch -Patch2: screen-4.0.3-stropts.patch -# Fixes potential buffer overflow when > 2^31 semicolons are passed. -Patch3: screen-4.0.1-args.patch -Patch4: screen-4.0.2-maxstr.patch -Patch5: screen-4.0.3-ipv6.patch Patch6: screen-4.8.0-screenrc-mouse-scroll.patch License: GPL ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel BuildRequires: libncurses-devel BuildRequires: libpam-devel -BuildRequires: libutempter-devel BuildRequires: libxcrypt-devel ## AUTOBUILDREQ-END #BuildConflicts: libtermcap-devel @@ -39,12 +31,7 @@ Screen is a full-screen window manager that multiplexes a physical terminal betw %prep %setup -q -#%patch0 -p1 -%patch 1 -p1 -#%patch2 -p1 -#%patch3 -p0 -#%patch4 -p1 -#%patch5 -p1 +#%patch 1 -p1 %patch 6 -p1 ./autogen.sh @@ -77,6 +64,8 @@ install -D -m0644 etc/screenrc %{buildroot}%{_sysconfdir}/screenrc rm -f %{buildroot}%{_bindir}/screen mv %{buildroot}%{_bindir}/screen-%{version} %{buildroot}%{_bindir}/screen +rm -f %{buildroot}%{_infodir}/dir + %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" @@ -106,6 +95,9 @@ exit 0 #% doc doc/README.DOTSCREEN %changelog +* Thu Sep 05 2024 Automatic Build System 5.0.0-1mamba +- automatic version update by autodist + * Fri Aug 18 2023 Automatic Build System 4.9.1-1mamba - automatic version update by autodist