pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Add screen-4.9.1 from pkgsrc-2024Q4, because screen 5.0 is too buggy.
Module Name: pkgsrc-wip
Committed By: Olaf Seibert <rhialto%falu.nl@localhost>
Pushed By: rhialto
Date: Tue Apr 8 21:03:27 2025 +0200
Changeset: 1f3429b922a352c7907d06fd97fe5aace1bd4113
Modified Files:
Makefile
Added Files:
screen-4.9.1/DESCR
screen-4.9.1/MESSAGE
screen-4.9.1/Makefile
screen-4.9.1/PLIST
screen-4.9.1/distinfo
screen-4.9.1/options.mk
screen-4.9.1/patches/patch-aa
screen-4.9.1/patches/patch-ab
screen-4.9.1/patches/patch-ae
screen-4.9.1/patches/patch-ai
screen-4.9.1/patches/patch-aj
screen-4.9.1/patches/patch-al
screen-4.9.1/patches/patch-am
screen-4.9.1/patches/patch-an
screen-4.9.1/patches/patch-ao
screen-4.9.1/patches/patch-ap
screen-4.9.1/patches/patch-doc_screen.texinfo
screen-4.9.1/patches/patch-screen.c
screen-4.9.1/patches/patch-socket.c
screen-4.9.1/patches/patch-tty.sh
screen-4.9.1/patches/patch-window.h
Log Message:
Add screen-4.9.1 from pkgsrc-2024Q4, because screen 5.0 is too buggy.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=1f3429b922a352c7907d06fd97fe5aace1bd4113
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
Makefile | 1 +
screen-4.9.1/DESCR | 7 ++
screen-4.9.1/MESSAGE | 14 ++++
screen-4.9.1/Makefile | 85 ++++++++++++++++++++++++
screen-4.9.1/PLIST | 28 ++++++++
screen-4.9.1/distinfo | 20 ++++++
screen-4.9.1/options.mk | 29 ++++++++
screen-4.9.1/patches/patch-aa | 52 +++++++++++++++
screen-4.9.1/patches/patch-ab | 22 +++++++
screen-4.9.1/patches/patch-ae | 18 +++++
screen-4.9.1/patches/patch-ai | 43 ++++++++++++
screen-4.9.1/patches/patch-aj | 27 ++++++++
screen-4.9.1/patches/patch-al | 95 +++++++++++++++++++++++++++
screen-4.9.1/patches/patch-am | 88 +++++++++++++++++++++++++
screen-4.9.1/patches/patch-an | 47 +++++++++++++
screen-4.9.1/patches/patch-ao | 14 ++++
screen-4.9.1/patches/patch-ap | 51 ++++++++++++++
screen-4.9.1/patches/patch-doc_screen.texinfo | 14 ++++
screen-4.9.1/patches/patch-screen.c | 15 +++++
screen-4.9.1/patches/patch-socket.c | 17 +++++
screen-4.9.1/patches/patch-tty.sh | 49 ++++++++++++++
screen-4.9.1/patches/patch-window.h | 17 +++++
22 files changed, 753 insertions(+)
diffs:
diff --git a/Makefile b/Makefile
index 91e1404ae6..666d113e31 100644
--- a/Makefile
+++ b/Makefile
@@ -5270,6 +5270,7 @@ SUBDIR+= scourge
SUBDIR+= scr2png
SUBDIR+= scrc
SUBDIR+= scrcpy
+SUBDIR+= screen-4.9.1
SUBDIR+= scsh-install-lib
SUBDIR+= scummvm-bass
SUBDIR+= scummvm-fotaq
diff --git a/screen-4.9.1/DESCR b/screen-4.9.1/DESCR
new file mode 100644
index 0000000000..7b753f9551
--- /dev/null
+++ b/screen-4.9.1/DESCR
@@ -0,0 +1,7 @@
+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 a 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 moving text regions between windows.
diff --git a/screen-4.9.1/MESSAGE b/screen-4.9.1/MESSAGE
new file mode 100644
index 0000000000..596be78e39
--- /dev/null
+++ b/screen-4.9.1/MESSAGE
@@ -0,0 +1,14 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.5 2005/12/28 17:53:24 reed Exp $
+
+You may want to create and edit the file:
+
+ ${PKG_SYSCONFDIR}/screenrc
+
+to customize screen globally. Example configuration files have been
+installed to:
+
+ ${PREFIX}/share/examples/screen/screenrc
+ ${PREFIX}/share/examples/screen/etcscreenrc
+
+===========================================================================
diff --git a/screen-4.9.1/Makefile b/screen-4.9.1/Makefile
new file mode 100644
index 0000000000..75be810b40
--- /dev/null
+++ b/screen-4.9.1/Makefile
@@ -0,0 +1,85 @@
+# $NetBSD: Makefile,v 1.123 2023/09/06 16:00:15 vins Exp $
+
+DISTNAME= screen-4.9.1
+CATEGORIES= misc shells
+MASTER_SITES= ${MASTER_SITE_GNU:=screen/}
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://www.gnu.org/software/screen/screen.html
+COMMENT= Multi-screen window manager
+LICENSE= gnu-gpl-v3
+
+EXTRACT_USING= bsdtar
+
+# In file included from list_display.c:36:
+# In file included from ./screen.h:150:
+# ./display.h:154:19: error: use of undeclared identifier 'T_N'
+#MAKE_JOBS_SAFE= no
+
+.include "options.mk"
+
+NOT_FOR_PLATFORM= Interix-*-* # user auth and username size fixes needed
+
+PLIST_SUBST+= DISTNAME=${DISTNAME:Q}
+
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --with-sys-screenrc=${PKG_SYSCONFDIR}/screenrc
+CONFIGURE_ARGS+= --enable-telnet
+CONFIGURE_ARGS+= --enable-colors256
+
+PKG_SHELL= bin/screen
+
+USE_TOOLS+= automake autoconf autoreconf makeinfo
+INFO_FILES= YES
+
+.include "../../mk/bsd.prefs.mk"
+
+SUBST_CLASSES+= paths
+SUBST_FILES.paths= etc/etcscreenrc doc/screen.1
+SUBST_VARS.paths= PKG_SYSCONFDIR
+SUBST_SED.paths+= -e 's,@EXAMPLES@,${PREFIX}/share/examples/screen,g'
+SUBST_STAGE.paths= pre-configure
+
+PLIST_VARS+= terminfo
+
+.include "../../mk/compiler.mk"
+
+.if ${OPSYS} == "SunOS"
+. if !empty(PKGSRC_COMPILER:Mclang) || ${CC_VERSION:Mgcc-[6-9]*} || ${CC_VERSION:Mgcc-1[0-9].*}
+CPPFLAGS+= -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
+. else
+CPPFLAGS+= -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
+. endif
+. if ${CURSES_DEFAULT} == "curses"
+INSTALLATION_DIRS+= share/lib/terminfo
+PLIST.terminfo= yes
+post-install: screen-terminfo
+. endif
+.endif
+
+INSTALLATION_DIRS+= share/examples/screen
+
+.if ${UNPRIVILEGED:U:tl} != yes
+SPECIAL_PERMS+= bin/${DISTNAME} ${SETUID_ROOT_PERMS}
+.endif
+
+pre-configure:
+ cd ${WRKSRC} && autoreconf -i
+
+post-install:
+ ${INSTALL_DATA} ${WRKSRC}/etc/etcscreenrc \
+ ${DESTDIR}${PREFIX}/share/examples/screen/etcscreenrc
+ ${INSTALL_DATA} ${WRKSRC}/etc/screenrc \
+ ${DESTDIR}${PREFIX}/share/examples/screen/screenrc
+.if ${UNPRIVILEGED:U:tl} == yes
+ chmod -s ${DESTDIR}${PREFIX}/bin/${DISTNAME}
+.endif
+
+.PHONY: screen-terminfo
+screen-terminfo:
+ cd ${WRKSRC}/terminfo && \
+ ${SETENV} TERMINFO=${DESTDIR}${PREFIX}/share/lib/terminfo \
+ /usr/bin/tic screeninfo.src
+
+.include "../../mk/termcap.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/screen-4.9.1/PLIST b/screen-4.9.1/PLIST
new file mode 100644
index 0000000000..1b3b5751b4
--- /dev/null
+++ b/screen-4.9.1/PLIST
@@ -0,0 +1,28 @@
+@comment $NetBSD: PLIST,v 1.14 2014/09/19 13:17:22 jperkin Exp $
+bin/screen
+bin/${DISTNAME}
+info/screen.info
+man/man1/screen.1
+share/examples/screen/etcscreenrc
+share/examples/screen/screenrc
+${PLIST.terminfo}share/lib/terminfo/s/screen
+${PLIST.terminfo}share/lib/terminfo/s/screen-256color
+${PLIST.terminfo}share/lib/terminfo/s/screen-bce
+${PLIST.terminfo}share/lib/terminfo/s/screen-s
+share/screen/utf8encodings/01
+share/screen/utf8encodings/02
+share/screen/utf8encodings/03
+share/screen/utf8encodings/04
+share/screen/utf8encodings/18
+share/screen/utf8encodings/19
+share/screen/utf8encodings/a1
+share/screen/utf8encodings/bf
+share/screen/utf8encodings/c2
+share/screen/utf8encodings/c3
+share/screen/utf8encodings/c4
+share/screen/utf8encodings/c6
+share/screen/utf8encodings/c7
+share/screen/utf8encodings/c8
+share/screen/utf8encodings/cc
+share/screen/utf8encodings/cd
+share/screen/utf8encodings/d6
diff --git a/screen-4.9.1/distinfo b/screen-4.9.1/distinfo
new file mode 100644
index 0000000000..0b3a840c1a
--- /dev/null
+++ b/screen-4.9.1/distinfo
@@ -0,0 +1,20 @@
+$NetBSD: distinfo,v 1.64 2023/09/06 16:00:15 vins Exp $
+
+BLAKE2s (screen-4.9.1.tar.gz) = 5632587a76908410b4b1af70c729e01521970c72693fa78ec9b62d907fefbc8c
+SHA512 (screen-4.9.1.tar.gz) = 1f278313528815f4246bb162ced611c5d77321d11055e8d853168dc804c75d5f78568056a23e46db0640e1605e5cad4a5ce05e95e50cf02bb322cb6f57e5a126
+Size (screen-4.9.1.tar.gz) = 1040785 bytes
+SHA1 (patch-aa) = ea0c43e54d8764e4896f45677eb0a6070bd7b54b
+SHA1 (patch-ab) = 36474dfd780c0d0188eda998fb2d936fa4893b9c
+SHA1 (patch-ae) = c952a7e52df0f33c2853c348e89650009c0d8696
+SHA1 (patch-ai) = edefc44e47066dc89bda22a94d417511f46f0190
+SHA1 (patch-aj) = 1260f55afb98536d0da081fbd95fafa9b5b513f7
+SHA1 (patch-al) = ef32a642ddb12f0bf13149c406f4dde7926ae678
+SHA1 (patch-am) = a721e311e7dde7938de0e9546a7892bfd104ebd1
+SHA1 (patch-an) = bda6c65148410a6c9a13afd8ad34f93e33731552
+SHA1 (patch-ao) = a45ae3186cd9bddeb915bad890f1be5abc315dd3
+SHA1 (patch-ap) = 4aab542045a0abe55e82d91851b94c3cb569139f
+SHA1 (patch-doc_screen.texinfo) = 18d959580fd03731c7e7dbc683970f80b4245840
+SHA1 (patch-screen.c) = de5d8468100ab88cbdb842e21b04b00221e798b8
+SHA1 (patch-socket.c) = 290a6a1113a9100bea0748406374ec3d835f5ba7
+SHA1 (patch-tty.sh) = 6a818b7a4d70e55878ee69605e53300eabcb525f
+SHA1 (patch-window.h) = 84dc5a2c24ff77147b416c05f897536c0cfddf31
diff --git a/screen-4.9.1/options.mk b/screen-4.9.1/options.mk
new file mode 100644
index 0000000000..2685f9c375
--- /dev/null
+++ b/screen-4.9.1/options.mk
@@ -0,0 +1,29 @@
+# $NetBSD: options.mk,v 1.4 2023/09/06 16:00:15 vins Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.screen
+
+PKG_OPTIONS_OPTIONAL_GROUPS= curses
+PKG_OPTIONS_GROUP.curses= curses ncurses pdcurses
+
+PKG_SUPPORTED_OPTIONS= # undef
+
+.include "../../mk/bsd.options.mk"
+
+###
+### Override the default curses implementation
+###
+.if !empty(PKG_OPTIONS:Mcurses)
+CURSES_DEFAULT= curses
+.endif
+
+.if !empty(PKG_OPTIONS:Mncurses)
+CURSES_DEFAULT= ncurses
+CONFIGURE_ARGS+= --enable-colors256
+.endif
+
+.if !empty(PKG_OPTIONS:Mpdcurses)
+CURSES_DEFAULT= pdcurses
+CONFIGURE_ARGS+= --enable-colors256
+.endif
+
+.include "../../mk/curses.buildlink3.mk"
diff --git a/screen-4.9.1/patches/patch-aa b/screen-4.9.1/patches/patch-aa
new file mode 100644
index 0000000000..1226cedad1
--- /dev/null
+++ b/screen-4.9.1/patches/patch-aa
@@ -0,0 +1,52 @@
+$NetBSD: patch-aa,v 1.14 2023/09/06 16:00:15 vins Exp $
+
+Portability fixes for NetBSD pty(4).
+
+--- pty.c.orig 2014-04-26 10:58:35.000000000 +0000
++++ pty.c
+@@ -318,6 +318,45 @@ char **ttyn;
+
+ /***************************************************************/
+
++#if defined(__NetBSD__) && !defined(PTY_DONE)
++#define PTY_DONE
++
++#include <sys/param.h>
++#include <string.h>
++
++int
++OpenPTY(ttyn)
++char **ttyn;
++{
++ int m, s, f;
++ char *t;
++
++ do
++ {
++ if (openpty(&m, &s, TtyName, NULL, NULL) < 0)
++ return -1;
++ close(m);
++ close(s);
++
++ strcpy(PtyName, TtyName);
++ t = strrchr(PtyName, '/');
++ if ((t == NULL ) || (*++t != 't'))
++ return -1;
++ *t = 'p';
++
++ f = open(PtyName, O_RDWR | O_NOCTTY);
++ }
++ while (f < 0);
++
++ initmaster(f);
++ *ttyn = TtyName;
++
++ return f;
++}
++#endif
++
++/***************************************************************/
++
+ #if defined(HAVE_OPENPTY) && !defined(PTY_DONE)
+ #define PTY_DONE
+ int
diff --git a/screen-4.9.1/patches/patch-ab b/screen-4.9.1/patches/patch-ab
new file mode 100644
index 0000000000..2be2f2a62c
--- /dev/null
+++ b/screen-4.9.1/patches/patch-ab
@@ -0,0 +1,22 @@
+$NetBSD: patch-ab,v 1.14 2022/03/06 13:04:20 ryoon Exp $
+
+Always use varargs on NetBSD
+
+--- acconfig.h.orig 2014-04-26 10:58:46.000000000 +0000
++++ acconfig.h
+@@ -498,6 +498,15 @@
+ */
+ #undef USEVARARGS
+
++#ifdef __NetBSD__
++/*
++ * XXX gcc 3.3 on some NetBSD platforms fails the configure test for this
++ * so force it on anyway.
++ */
++#undef USEVARARGS
++#define USEVARARGS 1
++#endif
++
+ /*
+ * If the select return value doesn't treat a descriptor that is
+ * usable for reading and writing as two hits, define SELECT_BROKEN.
diff --git a/screen-4.9.1/patches/patch-ae b/screen-4.9.1/patches/patch-ae
new file mode 100644
index 0000000000..dbba18dc5e
--- /dev/null
+++ b/screen-4.9.1/patches/patch-ae
@@ -0,0 +1,18 @@
+$NetBSD: patch-ae,v 1.8 2020/02/07 12:19:00 ryoon Exp $
+
+Don't pollute G1 to allow 8-bit encondings.
+
+The original code made the TERMCAP env var longer than 1023 bytes,
+which causes problems. This is a quick hack but works with our termcap.
+
+--- termcap.c.orig 2020-02-05 20:09:38.000000000 +0000
++++ termcap.c
+@@ -78,7 +78,7 @@ char *extra_incap, *extra_outcap;
+ static const char TermcapConst[] = "DO=\\E[%dB:LE=\\E[%dD:RI=\\E[%dC:\
+ UP=\\E[%dA:bs:bt=\\E[Z:cd=\\E[J:ce=\\E[K:cl=\\E[H\\E[J:cm=\\E[%i%d;%dH:\
+ ct=\\E[3g:do=^J:nd=\\E[C:pt:rc=\\E8:rs=\\Ec:sc=\\E7:st=\\EH:up=\\EM:\
+-le=^H:bl=^G:cr=^M:it#8:ho=\\E[H:nw=\\EE:ta=^I:is=\\E)0:";
++le=^H:bl=^G:cr=^M:it#8:ho=\\E[H:nw=\\EE:ta=^I:is=\\E(B:";
+
+ char *
+ gettermcapstring(s)
diff --git a/screen-4.9.1/patches/patch-ai b/screen-4.9.1/patches/patch-ai
new file mode 100644
index 0000000000..8402d3f160
--- /dev/null
+++ b/screen-4.9.1/patches/patch-ai
@@ -0,0 +1,43 @@
+$NetBSD: patch-ai,v 1.8 2017/07/18 23:02:18 kim Exp $
+
+This glues in the code from patch-am (see also patch-al and patch-an).
+
+--- os.h.orig 2016-06-19 19:41:03.000000000 +0000
++++ os.h
+@@ -71,9 +71,6 @@
+ # undef exit
+ #endif /* sun */
+
+-#ifndef linux /* all done in <errno.h> */
+-extern int errno;
+-#endif /* linux */
+ #ifndef HAVE_STRERROR
+ /* No macros, please */
+ #undef strerror
+@@ -250,9 +247,15 @@ extern int errno;
+ #endif
+
+ #if defined(UTMPOK) || defined(BUGGYGETLOGIN)
+-# if defined(SVR4) && !defined(DGUX) && !defined(__hpux) && !defined(linux)
++# if defined(SVR4) && !defined(DGUX) && !defined(__hpux) && !defined(linux) \
++ || (defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 106050000)) \
++ || (defined(__DragonFly__) && (__DragonFly_version >= 200902))
+ # include <utmpx.h>
++#if defined(UTMPX_FILE) /* GNU extension */
+ # define UTMPFILE UTMPX_FILE
++#elif defined(_PATH_UTMPX)
++# define UTMPFILE _PATH_UTMPX
++#endif
+ # define utmp utmpx
+ # define getutent getutxent
+ # define getutid getutxid
+@@ -261,6 +264,9 @@ extern int errno;
+ # define setutent setutxent
+ # define endutent endutxent
+ # define ut_time ut_xtime
++# if defined(__NetBSD__)
++# define NetBSD_UTMP
++# endif
+ # else /* SVR4 */
+ # include <utmp.h>
+ # endif /* SVR4 */
diff --git a/screen-4.9.1/patches/patch-aj b/screen-4.9.1/patches/patch-aj
new file mode 100644
index 0000000000..c54fa218bf
--- /dev/null
+++ b/screen-4.9.1/patches/patch-aj
@@ -0,0 +1,27 @@
+$NetBSD: patch-aj,v 1.11 2023/09/06 16:00:15 vins Exp $
+
+Include curses header when testing tgetent in order to prevent
+crash on 64-bit architectures.
+
+Detect getutent correctly on NetBSD with utmpx.
+
+--- configure.ac.orig 2023-08-16 00:29:26.000000000 +0000
++++ configure.ac
+@@ -904,9 +904,16 @@ AC_CHECKING(getutent)
+ AC_TRY_LINK([
+ #include <time.h> /* to get time_t on SCO */
+ #include <sys/types.h>
+-#if defined(SVR4) && !defined(DGUX)
++ #include <sys/param.h>
++#if (defined(SVR4) && !defined(DGUX)) \
++ || (defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 106050000)) \
++ || (defined(__DragonFly__) && (__DragonFly_version >= 200902))
+ #include <utmpx.h>
+ #define utmp utmpx
++# if defined(__NetBSD__) || defined(__DragonFly__)
++# define pututline pututxline
++# define getutent getutxent
++# endif
+ #else
+ #include <utmp.h>
+ #endif
diff --git a/screen-4.9.1/patches/patch-al b/screen-4.9.1/patches/patch-al
new file mode 100644
index 0000000000..fbffe311b6
--- /dev/null
+++ b/screen-4.9.1/patches/patch-al
@@ -0,0 +1,95 @@
+$NetBSD: patch-al,v 1.9 2023/09/06 16:00:15 vins Exp $
+
+Make extra calls to remove utmp entries when utmpx is used.
+For non-login entries we only update utmpx, as it stores
+more information, and utilities are reading both.
+
+Do not truncate hostnames that have two colons (:) as they
+are likely IPv6 addresses. Wrap them in brackets ([])
+unless already wrapped (e.g. from $DISPLAY).
+
+--- utmp.c.orig 2023-08-16 00:29:26.000000000 +0000
++++ utmp.c
+@@ -48,6 +48,12 @@ extern char *LoginName;
+ extern int real_uid, eff_uid;
+
+
++#ifdef NetBSD_UTMP
++extern void utmp_login __P((char *));
++extern void utmp_logout __P((char *));
++#endif
++
++
+ /*
+ * UTNOKEEP: A (ugly) hack for apollo that does two things:
+ * 1) Always close and reopen the utmp file descriptor. (I don't know
+@@ -315,6 +321,9 @@ RemoveLoginSlot()
+
+ ASSERT(display);
+ debug("RemoveLoginSlot: removing your logintty\n");
++#ifdef NetBSD_UTMP
++ utmp_logout(stripdev(D_usertty));
++#endif
+ D_loginslot = TtyNameSlot(D_usertty);
+ if (D_loginslot == (slot_t)0 || D_loginslot == (slot_t)-1)
+ return;
+@@ -379,6 +388,9 @@ RestoreLoginSlot()
+
+ debug("RestoreLoginSlot()\n");
+ ASSERT(display);
++#ifdef NetBSD_UTMP
++ utmp_login(stripdev(D_usertty));
++#endif
+ if (utmpok && D_loginslot != (slot_t)0 && D_loginslot != (slot_t)-1)
+ {
+ debug1(" logging you in again (slot %#lx)\n", (long)D_loginslot);
+@@ -410,7 +422,7 @@ struct win *wi;
+ struct utmp u;
+ int saved_ut;
+ #ifdef UTHOST
+- char *p;
++ char *m, *p;
+ char host[sizeof(D_loginhost) + 15];
+ #else
+ char *host = 0;
+@@ -449,12 +461,37 @@ struct win *wi;
+ * "faui45.informati"......:s.0
+ * HPUX uses host:0.0, so chop at "." and ":" (Eric Backus)
+ */
+- for (p = host; *p; p++)
+- if ((*p < '0' || *p > '9') && (*p != '.'))
++ for (m = p = host; *p; p++)
++ if (*p == ':')
+ break;
++ if (*p == ':')
++ for (m = p + 1; *m; m++)
++ if (*m == ':')
++ {
++ if (host[0] != '[')
++ {
++ strncpy(host + 1, D_loginhost, sizeof(host) - 15 - 2);
++ host[0] = '[';
++ p = host + strlen(host);
++ *p++ = ']';
++ }
++ break;
++ }
++ else
++ for (p = host; *p; p++)
++ if ((*p < '0' || *p > '9') && (*p != '.'))
++ break;
+ if (*p)
+ {
+- for (p = host; *p; p++)
++ p = host;
++ if (host[0] == '[')
++ for (; *p; p++)
++ if (*p == ']')
++ {
++ p++;
++ break;
++ }
++ for (; *p; p++)
+ if (*p == '.' || (*p == ':' && p != host))
+ {
+ *p = '\0';
diff --git a/screen-4.9.1/patches/patch-am b/screen-4.9.1/patches/patch-am
new file mode 100644
index 0000000000..1bee5a5431
--- /dev/null
+++ b/screen-4.9.1/patches/patch-am
@@ -0,0 +1,88 @@
+$NetBSD: patch-am,v 1.2 2015/02/13 04:44:40 rodent Exp $
+
+Code to handle the login slot in utmp when utmpx is available.
+Daemons shipped with NetBSD tend to write to both, while 3rd
+party software might write to only one.
+
+--- utmp-netbsd.c.orig 2015-02-13 04:30:05.000000000 +0000
++++ utmp-netbsd.c
+@@ -0,0 +1,79 @@
++#include <sys/param.h>
++#if defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 106050000)
++
++#include <sys/types.h>
++#include <sys/time.h>
++#include <sys/wait.h>
++
++#include <errno.h>
++#include <fcntl.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <time.h>
++#include <ttyent.h>
++#include <unistd.h>
++#include <util.h>
++#include <utmp.h>
++
++static struct utmp saved_utmp;
++static int saved_utmp_ok = 0;
++
++int
++lineslot(line)
++char *line;
++{
++ int slot;
++ struct ttyent *ttyp;
++
++ setttyent();
++ for (slot = 1; (ttyp = getttyent()) != NULL; ++slot)
++ if (!strcmp(ttyp->ty_name, line)) {
++ endttyent();
++ return(slot);
++ }
++ endttyent();
++ return(0);
++}
++
++void
++utmp_login(line)
++char *line;
++{
++ int fd;
++ int tty;
++
++ if (!saved_utmp_ok)
++ return;
++
++ tty = lineslot(line);
++ if (tty > 0 && (fd = open(_PATH_UTMP, O_WRONLY|O_CREAT, 0644)) >= 0) {
++ (void)lseek(fd, (off_t)(tty * sizeof(struct utmp)), SEEK_SET);
++ (void)write(fd, &saved_utmp, sizeof(struct utmp));
++ (void)close(fd);
++ }
++}
++
++void
++utmp_logout(const char *line)
++{
++ int fd;
++ struct utmp ut;
++
++ if ((fd = open(_PATH_UTMP, O_RDWR, 0)) < 0)
++ return;
++ while (read(fd, &ut, sizeof(ut)) == sizeof(ut)) {
++ if (!ut.ut_name[0] || strncmp(ut.ut_line, line, UT_LINESIZE))
++ continue;
++ memcpy(&saved_utmp, &ut, sizeof(ut));
++ saved_utmp_ok = 1;
++ memset(ut.ut_name, 0, UT_NAMESIZE);
++ memset(ut.ut_host, 0, UT_HOSTSIZE);
++ (void)time(&ut.ut_time);
++ (void)lseek(fd, -(off_t)sizeof(ut), SEEK_CUR);
++ (void)write(fd, &ut, sizeof(ut));
++ }
++ (void)close(fd);
++}
++
++#endif
diff --git a/screen-4.9.1/patches/patch-an b/screen-4.9.1/patches/patch-an
new file mode 100644
index 0000000000..648cc44752
--- /dev/null
+++ b/screen-4.9.1/patches/patch-an
@@ -0,0 +1,47 @@
+$NetBSD: patch-an,v 1.6 2015/09/01 13:34:47 kim Exp $
+
+Remove GNU Make conditional. @ETCSCREENRC@ appears to get
+replaced always. If it doesn't in some cases, please fix
+configure.ac instead (and regen patch for configure as well).
+
+Add utmp-netbsd.c (created in patch-am) and utmp-netbsd.o.
+Setting the setuid bit is handled by the package Makefile.
+Don't try to leave "screen.old" behind on install.
+
+--- Makefile.in.orig 2014-04-26 10:58:35.000000000 +0000
++++ Makefile.in
+@@ -26,9 +26,6 @@ GIT_REV = "`git describe --always 2>/dev
+ DEFS = @DEFS@ -DGIT_REV=\"$(GIT_REV)\"
+
+ ETCSCREENRC = @ETCSCREENRC@
+-ifeq (${ETCSCREENRC}, )
+-ETCSCREENRC=$(prefix)/etc/screenrc
+-endif
+ SCREENENCODINGS = $(datadir)/screen/utf8encodings
+
+ CC = @CC@
+@@ -65,12 +62,12 @@ CFILES= screen.c ansi.c fileio.c mark.c
+ termcap.c input.c attacher.c pty.c process.c display.c comm.c \
+ kmapdef.c acls.c braille.c braille_tsi.c logfile.c layer.c \
+ sched.c teln.c nethack.c encoding.c canvas.c layout.c viewport.c \
+- list_display.c list_generic.c list_window.c
++ list_display.c list_generic.c list_window.c utmp-netbsd.c
+ OFILES= screen.o ansi.o fileio.o mark.o misc.o resize.o socket.o \
+ search.o tty.o term.o window.o utmp.o loadav.o putenv.o help.o \
+ termcap.o input.o attacher.o pty.o process.o display.o comm.o \
+ kmapdef.o acls.o braille.o braille_tsi.o logfile.o layer.o \
+- list_generic.o list_display.o list_window.o \
++ list_generic.o list_display.o list_window.o utmp-netbsd.o \
+ sched.o teln.o nethack.o encoding.o canvas.o layout.o viewport.o
+
+ all: screen
+@@ -86,9 +83,6 @@ install_bin: .version screen
+ -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \
+ then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi
+ $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
+- -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
+-# This doesn't work if $(bindir)/screen is a symlink
+- -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi
+ rm -f $(DESTDIR)$(bindir)/screen
+ (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
+ cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
diff --git a/screen-4.9.1/patches/patch-ao b/screen-4.9.1/patches/patch-ao
new file mode 100644
index 0000000000..5bceaf9744
--- /dev/null
+++ b/screen-4.9.1/patches/patch-ao
@@ -0,0 +1,14 @@
+$NetBSD: patch-ao,v 1.7 2020/03/24 06:55:34 rillig Exp $
+
+Replace configurable paths with tags.
+
+--- etc/etcscreenrc.orig 2015-09-05 19:28:22.000000000 +0000
++++ etc/etcscreenrc
+@@ -1,6 +1,6 @@
+ #
+ # This is an example for the global screenrc file.
+-# You may want to install this file as /usr/local/etc/screenrc.
++# You may want to install this file as @PKG_SYSCONFDIR@/screenrc.
+ # Check config.h for the exact location.
+ #
+ # Flaws of termcap and standard settings are done here.
diff --git a/screen-4.9.1/patches/patch-ap b/screen-4.9.1/patches/patch-ap
new file mode 100644
index 0000000000..c470561553
--- /dev/null
+++ b/screen-4.9.1/patches/patch-ap
@@ -0,0 +1,51 @@
+$NetBSD: patch-ap,v 1.10 2020/03/24 07:04:37 rillig Exp $
+
+Replace configurable paths with tags.
+
+--- doc/screen.1.orig 2017-07-10 19:26:25.000000000 +0000
++++ doc/screen.1 2017-07-18 22:44:38.000000000 +0000
+@@ -712,7 +712,7 @@
+
+ .SH CUSTOMIZATION
+ The \*Qsocket directory\*U defaults either to $HOME/.screen or simply to
+-/tmp/screens or preferably to /usr/local/screens chosen at compile-time. If
++/tmp/screens. This is chosen at compile-time. If
+ .I screen
+ is installed setuid-root, then the administrator
+ should compile
+@@ -725,7 +725,7 @@
+ When
+ .I screen
+ is invoked, it executes initialization commands from the files
+-\*Q/usr/local/etc/screenrc\*U and
++\*Q@PKG_SYSCONFDIR@/screenrc\*U and
+ \*Q.screenrc\*U in the user's home directory. These are the \*Qprogrammer's
+ defaults\*U that can be overridden in the following ways: for the
+ global screenrc file
+@@ -755,7 +755,7 @@
+ protected from variable substitution.
+ .PP
+ Two configuration files are shipped as examples with your screen distribution:
+-\*Qetc/screenrc\*U and \*Qetc/etcscreenrc\*U. They contain a number of
++\*Q@EXAMPLES@/screenrc\*U and \*Q@EXAMPLES@/etcscreenrc\*U. They contain a number of
+ useful examples for various commands.
+ .PP
+ Customization can also be done 'on-line'. To enter the command mode type
+@@ -5017,14 +5017,14 @@
+ .I screen
+ distribution package for private and global initialization files.
+ .IP $SYSSCREENRC
+-.IP /usr/local/etc/screenrc
++.IP @PKG_SYSCONFDIR@/screenrc
+ .I screen
+ initialization commands
+ .IP $SCREENRC
+ .IP $HOME/.screenrc
+-Read in after /usr/local/etc/screenrc
++Read in after @PKG_SYSCONFDIR@/screenrc
+ .IP $SCREENDIR/S\-<login>
+-.IP /local/screens/S\-<login>
++.IP /tmp/screens/S\-<login>
+ Socket directories (default)
+ .IP /usr/tmp/screens/S\-<login>
+ Alternate socket directories.
diff --git a/screen-4.9.1/patches/patch-doc_screen.texinfo b/screen-4.9.1/patches/patch-doc_screen.texinfo
new file mode 100644
index 0000000000..302c3530fb
--- /dev/null
+++ b/screen-4.9.1/patches/patch-doc_screen.texinfo
@@ -0,0 +1,14 @@
+$NetBSD: patch-doc_screen.texinfo,v 1.3 2023/09/06 16:00:15 vins Exp $
+
+Fix: Node `Window Settings' lacks menu item for `Mousetrack'
+
+--- doc/screen.texinfo.orig 2023-08-16 00:29:26.000000000 +0000
++++ doc/screen.texinfo
+@@ -2414,6 +2414,7 @@ terminal emulation itself.
+ * Login:: Control @file{/etc/utmp} logging
+ * Mode:: Control the file mode of the pty
+ * Monitor:: Watch for activity or inactivity in a window
++* Mousetrack:: Set whether screen should track mouse events
+ * Windows:: List the active windows
+ * Hardstatus:: Set a window's hardstatus line
+ @end menu
diff --git a/screen-4.9.1/patches/patch-screen.c b/screen-4.9.1/patches/patch-screen.c
new file mode 100644
index 0000000000..51bc04f773
--- /dev/null
+++ b/screen-4.9.1/patches/patch-screen.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-screen.c,v 1.5 2017/07/18 23:02:18 kim Exp $
+
+Use standard headers.
+
+--- screen.c.orig 2017-07-10 19:26:25.000000000 +0000
++++ screen.c 2017-07-18 22:40:56.000000000 +0000
+@@ -95,6 +95,8 @@
+ # include <langinfo.h>
+ #endif
+
++#include <limits.h>
++
+ #include "screen.h"
+ #ifdef HAVE_BRAILLE
+ # include "braille.h"
diff --git a/screen-4.9.1/patches/patch-socket.c b/screen-4.9.1/patches/patch-socket.c
new file mode 100644
index 0000000000..dbcd3d7567
--- /dev/null
+++ b/screen-4.9.1/patches/patch-socket.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-socket.c,v 1.4 2023/09/06 16:00:15 vins Exp $
+
+Include <uio.h> for iovec.
+
+--- socket.c.orig 2017-07-10 19:26:25.000000000 +0000
++++ socket.c 2017-07-18 22:35:40.000000000 +0000
+@@ -34,9 +34,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ # include <sys/socket.h>
+-# ifdef _OpenBSD_
+-# include <sys/uio.h>
+-# endif
++# include <sys/uio.h>
+ # include <sys/un.h>
+
+ #ifndef SIGINT
diff --git a/screen-4.9.1/patches/patch-tty.sh b/screen-4.9.1/patches/patch-tty.sh
new file mode 100644
index 0000000000..2d9700bdfe
--- /dev/null
+++ b/screen-4.9.1/patches/patch-tty.sh
@@ -0,0 +1,49 @@
+$NetBSD: patch-tty.sh,v 1.6 2022/01/03 21:21:12 christos Exp $
+
+Change condition for using TIOCSCTTY.
+
+NetBSD on the netbsd-5 branch insists on a non-NULL second argument
+to the realpath() function. Make it so.
+
+On BSD's we don't want to set CLOCAL because it prevents sending SIGHUP
+on master pty close.
+
+--- tty.sh.orig 2020-02-05 15:09:38.000000000 -0500
++++ tty.sh 2022-01-03 16:10:52.529555957 -0500
+@@ -267,7 +267,13 @@
+
+ IF{CS8} m->tio.c_cflag |= CS8;
+ IF{CREAD} m->tio.c_cflag |= CREAD;
++#ifndef BSD
++/*
++ * On BSDs definining CLOCAL disables SIGHUP on master close
++ * and we don't want that.
++ */
+ IF{CLOCAL} m->tio.c_cflag |= CLOCAL;
++#endif
+
+ IF{ECHOCTL} m->tio.c_lflag |= ECHOCTL;
+ IF{ECHOKE} m->tio.c_lflag |= ECHOKE;
+@@ -784,7 +790,9 @@
+ /*
+ * Under BSD we have to set the controlling terminal again explicitly.
+ */
+-# if (defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__GNU__) || defined(__OpenBSD__)) && defined(TIOCSCTTY)
++# if (defined(__FreeBSD_kernel__) || defined(__DragonFly__) \
++ || defined(__GNU__) || (BSD >= 199103) || defined(__OpenBSD__)) \
++ && defined(TIOCSCTTY)
+ ioctl(fd, TIOCSCTTY, (char *)0);
+ # endif
+
+@@ -1485,8 +1493,10 @@
+ char realbuf[PATH_MAX];
+ const char *real;
+ int rc;
++ char *ttynamebuf;
+
+- real = realpath(tty, realbuf);
++ ttynamebuf = malloc(MAXPATHLEN);
++ real = realpath(tty, ttynamebuf);
+ if (!real)
+ return -1;
+ realbuf[sizeof(realbuf)-1]='\0';
diff --git a/screen-4.9.1/patches/patch-window.h b/screen-4.9.1/patches/patch-window.h
new file mode 100644
index 0000000000..bb0f3ab980
--- /dev/null
+++ b/screen-4.9.1/patches/patch-window.h
@@ -0,0 +1,17 @@
+$NetBSD: patch-window.h,v 1.3 2021/02/12 22:53:14 cjep Exp $
+
+OpenBSD grumbles without the socket definitions
+
+--- window.h.orig Wed Feb 5 20:09:38 2020
++++ window.h Thu Feb 11 21:27:43 2021
+@@ -33,6 +33,10 @@
+ #ifndef SCREEN_WINDOW_H
+ #define SCREEN_WINDOW_H
+
++#ifdef __OpenBSD__
++#include <sys/socket.h>
++#endif
++
+ /* keep this in sync with the initialisations in window.c */
+ struct NewWindow
+ {
Home |
Main Index |
Thread Index |
Old Index