summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2025-06-01 17:55:50 +0200
committerRene Ladan <rene@FreeBSD.org>2025-06-01 17:56:10 +0200
commitb1ec099e21357d5115b3bb5ab38502cedcc3d75c (patch)
tree029157e31989889d8849748ee0c4c4e15d4c5376
parentsecurity/py-yubikey-manager: remove unused dependency (diff)
sysutils/screen49: Remove expired port
2025-05-31 sysutils/screen49: Multiple CVEs
-rw-r--r--MOVED1
-rw-r--r--sysutils/Makefile1
-rw-r--r--sysutils/screen49/Makefile126
-rw-r--r--sysutils/screen49/distinfo3
-rw-r--r--sysutils/screen49/files/patch-attacher.c93
-rw-r--r--sysutils/screen49/files/patch-configure.ac75
-rw-r--r--sysutils/screen49/files/patch-doc__Makefile.in34
-rw-r--r--sysutils/screen49/files/patch-doc_screen.111
-rw-r--r--sysutils/screen49/files/patch-extern.h8
-rw-r--r--sysutils/screen49/files/patch-misc.c31
-rw-r--r--sysutils/screen49/files/patch-os.h33
-rw-r--r--sysutils/screen49/files/patch-osdef.h.in19
-rw-r--r--sysutils/screen49/files/patch-resize.c20
-rw-r--r--sysutils/screen49/files/patch-screen.c120
-rw-r--r--sysutils/screen49/files/patch-socket.c97
-rw-r--r--sysutils/screen49/files/patch-termcap.c15
-rw-r--r--sysutils/screen49/files/patch-terminfo__checktc.c18
-rw-r--r--sysutils/screen49/files/patch-utmp.c156
-rw-r--r--sysutils/screen49/files/screenrc.sample10
-rw-r--r--sysutils/screen49/pkg-descr7
-rw-r--r--sysutils/screen49/pkg-message11
-rw-r--r--sysutils/screen49/pkg-plist26
22 files changed, 1 insertions, 914 deletions
diff --git a/MOVED b/MOVED
index 28ae59614b55..6035f5365a1d 100644
--- a/MOVED
+++ b/MOVED
@@ -4427,3 +4427,4 @@ www/py-dj50-django-taggit|www/py-dj51-django-taggit|2025-06-01|Has expired: Exte
www/py-dj50-strawberry-graphql-django|www/py-dj51-strawberry-graphql-django|2025-06-01|Has expired: Extended support of Django 5.0 ends April 2025, upgrade to the Django 5.1+ version of this port. See https://www.djangoproject.com/download/
devel/py-dj50-strawberry-graphql|devel/py-dj51-strawberry-graphql|2025-06-01|Has expired: Extended support of Django 5.0 ends April 2025, upgrade to the Django 5.1+ version of this port. See https://www.djangoproject.com/download/
www/py-dj50-channels|www/py-dj51-channels|2025-06-01|Has expired: Extended support of Django 5.0 ends April 2025, upgrade to the Django 5.1+ version of this port. See https://www.djangoproject.com/download/
+sysutils/screen49||2025-06-01|Has expired: Multiple CVEs
diff --git a/sysutils/Makefile b/sysutils/Makefile
index 9da0d38c2751..dbf4cdc68545 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1264,7 +1264,6 @@
SUBDIR += schilyutils
SUBDIR += screen
SUBDIR += screen-devel
- SUBDIR += screen49
SUBDIR += screen50
SUBDIR += screenfetch
SUBDIR += screenie
diff --git a/sysutils/screen49/Makefile b/sysutils/screen49/Makefile
deleted file mode 100644
index 53845b416c98..000000000000
--- a/sysutils/screen49/Makefile
+++ /dev/null
@@ -1,126 +0,0 @@
-PORTNAME= screen
-PORTVERSION= 4.9.1
-PORTREVISION= 6
-CATEGORIES= sysutils
-MASTER_SITES= GNU \
- ftp://ftp.gnu.org/gnu/screen/ \
- ftp://gnu.mirror.iweb.com/screen/ \
- http://gnu.mirror.iweb.com/screen/ \
- http://mirror.sdunix.com/gnu/ \
- ftp://mirrors.kernel.org/gnu/screen/ \
- http://cschubert.com/distfiles/ \
- LOCAL/cy
-.if !defined(MASTERDIR)
-PKGNAMESUFFIX= 49
-CONFLICTS= screen-*
-.endif
-
-MAINTAINER= cy@FreeBSD.org
-COMMENT= Multi-screen window manager
-WWW= https://www.gnu.org/software/screen/
-
-CONFLICTS+= screen-devel*
-
-DEPRECATED= Multiple CVEs
-EXPIRATION_DATE=2025-05-31
-
-LICENSE= GPLv3
-
-OPTIONS_DEFINE= INFO NETHACK XTERM_256 SYSTEM_SCREENRC MULTIUSER \
- NOSOCKETDIR
-OPTIONS_DEFAULT= INFO NETHACK XTERM_256 SOCKETS SYSTEM_SCREENRC \
- NCURSES_DEFAULT MULTIUSER
-OPTIONS_SINGLE= IPC NCURSES
-OPTIONS_SINGLE_IPC= SOCKETS NAMED_PIPES
-OPTIONS_SINGLE_NCURSES= NCURSES_DEFAULT NCURSES_BASE NCURSES_PORT
-NETHACK_DESC= Enable nethack-style messages
-XTERM_256_DESC= Enable support for 256 colour xterm
-SOCKETS_DESC= Use new (4.2.1+) sockets for IPC (default)
-NAMED_PIPES_DESC= Use legacy (4.0.3) named pipes for IPC (override)
-SYSTEM_SCREENRC_DESC= Install system screenrc with helpful status line
-MULTIUSER_DESC= Install setuid-root screen to support multiuser
-MULTIUSER_PLIST_SUB= MULTISUID="@(,,4555) "
-MULTIUSER_PLIST_SUB_OFF=MULTISUID="@(,,0555) "
-NCURSES_DEFAULT_DESC= Depend on ncurses (ports if installed, otherwise base)
-NCURSES_BASE_DESC= Depend on ncurses in base
-NCURSES_PORT_DESC= Depend on devel/ncurses in ports
-NOSOCKETDIR_DESC= Use ~/.screen instead of socketdir
-
-NCURSES_DEFAULT_USES= ncurses
-NCURSES_BASE_USES= ncurses:base
-NCURSES_PORT_USES= ncurses:port
-
-OPTIONS_SUB=
-
-USES= autoreconf:build gmake cpe
-MAKE_ARGS+= WITH_MAN=1
-
-CPE_VENDOR= gnu
-
-.include <bsd.port.options.mk>
-
-GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share
-CFLAGS+= -I${NCURSESINC}
-LDFLAGS+= -L${NCURSESLIB}
-
-.if ${PORT_OPTIONS:MINFO}
-INFO= screen
-MAKE_ARGS+= WITH_INFO=1
-USES+= makeinfo
-.endif
-
-# Enables support for 256 colour xterm. Note that you may need to
-# set up a custom termcap entry or .screenrc which modifies termcap
-# to contain the following: Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm
-#
-.if ${PORT_OPTIONS:MXTERM_256}
-CFLAGS+= -DCOLORS256
-.endif
-
-.if ! ${PORT_OPTIONS:MNETHACK}
-CFLAGS+= -DNONETHACK
-.endif
-
-.if ${PORT_OPTIONS:MNOSOCKETDIR}
-CONFIGURE_ARGS+= --disable-socket-dir
-.endif
-
-.if defined(SCREEN_SOCKET_DIR)
-CONFIGURE_ARGS+= --with-socket-dir=${SCREEN_SOCKET_DIR}
-.endif
-
-post-patch:
- @${RM} ${WRKSRC}/doc/screen.info*
-
-# Bug 191029: Users can choose whether to use sockets or named pipes.
-# Choose sockets if you don't know what the difference is.
-# Choose named pipes if your environment is heterogeneous,
-# using both screen 4.0.3 and 4.2.1.
-# Bug 191017
-
-pre-configure:
- cd ${WRKSRC} && ./autogen.sh
-
-post-configure-NAMED_PIPES-on:
- @${ECHO_CMD} '#define NAMEDPIPE 1' >> ${WRKSRC}/config.h
- @${ECHO_CMD} User selected named pipes override set.
-
-ETCDIR?= ${PREFIX}/etc
-
-post-install:
- @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
- ${INSTALL_DATA} ${WRKSRC}/etc/etcscreenrc \
- ${STAGEDIR}${EXAMPLESDIR}/screenrc.sample-1
- ${INSTALL_DATA} ${FILESDIR}/screenrc.sample \
- ${STAGEDIR}${EXAMPLESDIR}/screenrc.sample-2
- @${MKDIR} ${STAGEDIR}${ETCDIR}
-.if ${PORT_OPTIONS:MSYSTEM_SCREENRC}
- ${INSTALL_DATA} ${FILESDIR}/screenrc.sample \
- ${STAGEDIR}${ETCDIR}/screenrc.sample
-.else
- ${INSTALL_DATA} ${WRKSRC}/etc/etcscreenrc \
- ${STAGEDIR}${ETCDIR}/screenrc.sample
-.endif
-
-.include <bsd.port.mk>
diff --git a/sysutils/screen49/distinfo b/sysutils/screen49/distinfo
deleted file mode 100644
index 21d74bb6e156..000000000000
--- a/sysutils/screen49/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1692454303
-SHA256 (screen-4.9.1.tar.gz) = 26cef3e3c42571c0d484ad6faf110c5c15091fbf872b06fa7aa4766c7405ac69
-SIZE (screen-4.9.1.tar.gz) = 1040785
diff --git a/sysutils/screen49/files/patch-attacher.c b/sysutils/screen49/files/patch-attacher.c
deleted file mode 100644
index c5f670bb6ceb..000000000000
--- a/sysutils/screen49/files/patch-attacher.c
+++ /dev/null
@@ -1,93 +0,0 @@
---- attacher.c.orig 2023-08-16 00:29:26 UTC
-+++ attacher.c
-@@ -73,7 +73,6 @@ extern int multiattach, multi_uid, own_uid;
- #ifdef MULTIUSER
- extern char *multi;
- extern int multiattach, multi_uid, own_uid;
--extern int tty_mode, tty_oldmode;
- # ifndef USE_SETEUID
- static int multipipe[2];
- # endif
-@@ -160,9 +159,6 @@ int how;
-
- if (pipe(multipipe))
- Panic(errno, "pipe");
-- if (chmod(attach_tty, 0666))
-- Panic(errno, "chmod %s", attach_tty);
-- tty_oldmode = tty_mode;
- eff_uid = -1; /* make UserContext fork */
- real_uid = multi_uid;
- if ((ret = UserContext()) <= 0)
-@@ -174,11 +170,6 @@ int how;
- Panic(errno, "UserContext");
- close(multipipe[1]);
- read(multipipe[0], &dummy, 1);
-- if (tty_oldmode >= 0)
-- {
-- chmod(attach_tty, tty_oldmode);
-- tty_oldmode = -1;
-- }
- ret = UserStatus();
- #ifdef LOCK
- if (ret == SIG_LOCK)
-@@ -224,9 +215,6 @@ int how;
- xseteuid(multi_uid);
- xseteuid(own_uid);
- #endif
-- if (chmod(attach_tty, 0666))
-- Panic(errno, "chmod %s", attach_tty);
-- tty_oldmode = tty_mode;
- }
- # endif /* USE_SETEUID */
- #endif /* MULTIUSER */
-@@ -423,13 +411,6 @@ int how;
- ContinuePlease = 0;
- # ifndef USE_SETEUID
- close(multipipe[1]);
--# else
-- xseteuid(own_uid);
-- if (tty_oldmode >= 0)
-- if (chmod(attach_tty, tty_oldmode))
-- Panic(errno, "chmod %s", attach_tty);
-- tty_oldmode = -1;
-- xseteuid(real_uid);
- # endif
- }
- #endif
-@@ -505,14 +486,6 @@ AttacherFinit SIGDEFARG
- close(s);
- }
- }
--#ifdef MULTIUSER
-- if (tty_oldmode >= 0)
-- {
-- if (setuid(own_uid))
-- Panic(errno, "setuid");
-- chmod(attach_tty, tty_oldmode);
-- }
--#endif
- exit(0);
- SIGRETURN;
- }
-@@ -732,7 +705,7 @@ LockTerminal()
- printf("\n");
-
- prg = getenv("LOCKPRG");
-- if (prg && strcmp(prg, "builtin") && !access(prg, X_OK))
-+ if (prg && (strcmp(prg, "builtin") || strcmp(prg,"builtin-passwd")) && !access(prg, X_OK))
- {
- signal(SIGCHLD, SIG_DFL);
- debug1("lockterminal: '%s' seems executable, execl it!\n", prg);
-@@ -751,7 +724,11 @@ LockTerminal()
- Panic(errno, "setuid");
- #endif
- closeallfiles(0); /* important: /etc/shadow may be open */
-- execl(prg, "SCREEN-LOCK", NULL);
-+ if (strcmp(prg,"builtin-passwd"))
-+ /* use system passsword for lock */
-+ execl(prg, "SCREEN-LOCK", "-p", "-n", NULL);
-+ else
-+ execl(prg, "SCREEN-LOCK", NULL);
- exit(errno);
- }
- if (pid == -1)
diff --git a/sysutils/screen49/files/patch-configure.ac b/sysutils/screen49/files/patch-configure.ac
deleted file mode 100644
index 1fc7eb310d6a..000000000000
--- a/sysutils/screen49/files/patch-configure.ac
+++ /dev/null
@@ -1,75 +0,0 @@
---- configure.ac.orig 2023-08-16 00:29:26 UTC
-+++ configure.ac
-@@ -669,7 +669,7 @@ olibs="$LIBS"
- tgetent((char *)0, (char *)0);
- ],,
- olibs="$LIBS"
--LIBS="-lcurses $olibs"
-+LIBS="-lcurses $olibs"; CC="$CC -I/usr/local/include"
- AC_CHECKING(libcurses)
- AC_TRY_LINK([
- #include <curses.h>
-@@ -756,19 +756,6 @@ fi
- fi
- fi
-
--if test "$cross_compiling" = no ; then
--AC_CHECKING(for SVR4 ptys)
--sysvr4ptys=
--if test -c /dev/ptmx ; then
--AC_TRY_LINK([
-- #include <stdlib.h>
--], [
-- ptsname(0);grantpt(0);unlockpt(0);
--],[AC_DEFINE(HAVE_SVR4_PTYS)
--sysvr4ptys=1])
--fi
--fi
--
- AC_CHECK_FUNCS(getpt)
-
- dnl check for openpty()
-@@ -900,11 +887,11 @@ dnl
- dnl
- dnl **** utmp handling ****
- dnl
--AC_CHECKING(getutent)
-+AC_CHECKING(getutxent)
- AC_TRY_LINK([
- #include <time.h> /* to get time_t on SCO */
- #include <sys/types.h>
--#if defined(SVR4) && !defined(DGUX)
-+#if defined(SVR4) && !defined(DGUX) || defined(__FreeBSD__)
- #include <utmpx.h>
- #define utmp utmpx
- #else
-@@ -917,11 +904,11 @@ LIBS="$LIBS -lgen"
- [int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE(GETUTENT),
- olibs="$LIBS"
- LIBS="$LIBS -lgen"
--AC_CHECKING(getutent with -lgen)
-+AC_CHECKING(getutxent with -lgen)
- AC_TRY_LINK([
- #include <time.h>
- #include <sys/types.h>
--#if defined(SVR4) && !defined(DGUX)
-+#if defined(SVR4) && !defined(DGUX) || defined(__FreeBSD__)
- #include <utmpx.h>
- #define utmp utmpx
- #else
-@@ -931,13 +918,13 @@ AC_TRY_LINK([
- #define pututline _pututline
- #endif
- ],
--[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE(GETUTENT), LIBS="$olibs")
-+[int x = DEAD_PROCESS; pututxline((struct utmp *)0); getutxent();], AC_DEFINE(GETUTENT), LIBS="$olibs")
- )
- AC_CHECKING(ut_host)
- AC_TRY_COMPILE([
- #include <time.h>
- #include <sys/types.h>
--#if defined(SVR4) && !defined(DGUX)
-+#if defined(SVR4) && !defined(DGUX) || defined(__FreeBSD__)
- #include <utmpx.h>
- #define utmp utmpx
- #else
diff --git a/sysutils/screen49/files/patch-doc__Makefile.in b/sysutils/screen49/files/patch-doc__Makefile.in
deleted file mode 100644
index c90450268d09..000000000000
--- a/sysutils/screen49/files/patch-doc__Makefile.in
+++ /dev/null
@@ -1,34 +0,0 @@
---- doc/Makefile.in.orig 2023-08-16 00:29:26 UTC
-+++ doc/Makefile.in
-@@ -31,7 +31,10 @@ install: installdirs
- $(MAKEINFO) $(srcdir)/screen.texinfo -o screen.info
-
- install: installdirs
-+ifeq (${WITH_MAN},1)
- $(INSTALL_DATA) $(srcdir)/screen.1 $(DESTDIR)$(mandir)/man1/screen.1
-+endif
-+ifeq (${WITH_INFO},1)
- -$(MAKE) screen.info
- -if test -f screen.info; then d=.; else d=$(srcdir); fi; \
- if test -f $$d/screen.info; then \
-@@ -40,13 +43,19 @@ install: installdirs
- install-info --info-dir=$(DESTDIR)$(infodir) $$d/screen.info; \
- else true; fi; \
- fi
-+endif
-
- uninstall:
- rm -f $(DESTDIR)$(mandir)/man1/screen.1
- rm -f $(DESTDIR)$(infodir)/screen.info*
-
- installdirs:
-- $(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(infodir)
-+ifeq (${WITH_MAN},1)
-+ $(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(mandir)/man1
-+endif
-+ifeq (${WITH_INFO},1)
-+ $(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(infodir)
-+endif
-
- mostlyclean:
- -rm -f *.cp *.cps *.fn *.fns *.ky *.kys *.pg *.tp *.vr
diff --git a/sysutils/screen49/files/patch-doc_screen.1 b/sysutils/screen49/files/patch-doc_screen.1
deleted file mode 100644
index 59077d7be443..000000000000
--- a/sysutils/screen49/files/patch-doc_screen.1
+++ /dev/null
@@ -1,11 +0,0 @@
---- doc/screen.1.orig 2023-08-15 11:01:59 UTC
-+++ doc/screen.1
-@@ -241,7 +241,7 @@
- .IR screen ,
- but prints a list of
- .I pid.tty.host
--strings identifying your
-+strings and creation timestamps identifying your
- .I screen
- sessions.
- Sessions marked `detached' can be resumed with \*Qscreen \-r\*U. Those marked
diff --git a/sysutils/screen49/files/patch-extern.h b/sysutils/screen49/files/patch-extern.h
deleted file mode 100644
index 99e9063cdd0f..000000000000
--- a/sysutils/screen49/files/patch-extern.h
+++ /dev/null
@@ -1,8 +0,0 @@
---- extern.h.orig 2023-08-15 08:44:47 UTC
-+++ extern.h
-@@ -512,3 +512,5 @@
- /* layout.c */
- extern void RemoveLayout __P((struct layout *));
- extern int LayoutDumpCanvas __P((struct canvas *, char *));
-+
-+extern time_t SessionCreationTime __P((const char *));
diff --git a/sysutils/screen49/files/patch-misc.c b/sysutils/screen49/files/patch-misc.c
deleted file mode 100644
index 6ea949fbf7a4..000000000000
--- a/sysutils/screen49/files/patch-misc.c
+++ /dev/null
@@ -1,31 +0,0 @@
---- misc.c.orig 2023-08-16 00:29:26 UTC
-+++ misc.c
-@@ -28,8 +28,10 @@
-
- #include <poll.h>
- #include <sys/types.h>
-+#include <sys/user.h>
- #include <sys/stat.h> /* mkdir() declaration */
- #include <signal.h>
-+#include <libutil.h>
-
- #include "config.h"
- #include "screen.h"
-@@ -720,3 +722,17 @@ xvsnprintf(char *s, int n, char *fmt, xva_list stack)
- }
-
- #endif
-+
-+time_t
-+SessionCreationTime(fifo)
-+const char *fifo;
-+{
-+ int pid = atoi(fifo);
-+ if (pid <= 0) return 0;
-+
-+ struct kinfo_proc * kip = kinfo_getproc(pid);
-+ if (kip == 0) return 0;
-+ time_t start = kip->ki_start.tv_sec;
-+ free (kip);
-+ return start;
-+}
diff --git a/sysutils/screen49/files/patch-os.h b/sysutils/screen49/files/patch-os.h
deleted file mode 100644
index ca0237af91ac..000000000000
--- a/sysutils/screen49/files/patch-os.h
+++ /dev/null
@@ -1,33 +0,0 @@
---- os.h.orig 2023-08-16 00:29:26 UTC
-+++ os.h
-@@ -250,9 +250,11 @@ 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(__FreeBSD_version)
- # include <utmpx.h>
--# define UTMPFILE UTMPX_FILE
-+# ifdef UTMPX_FILE /* GNU extension */
-+# define UTMPFILE UTMPX_FILE
-+# endif
- # define utmp utmpx
- # define getutent getutxent
- # define getutid getutxid
-@@ -507,7 +509,7 @@ typedef struct fd_set { int fds_bits[1]; } fd_set;
- */
-
- #ifndef TERMCAP_BUFSIZE
--# define TERMCAP_BUFSIZE 1023
-+# define TERMCAP_BUFSIZE 1024
- #endif
-
- #ifndef MAXPATHLEN
-@@ -524,6 +526,6 @@ typedef struct fd_set { int fds_bits[1]; } fd_set;
- /* Changing those you won't be able to attach to your old sessions
- * when changing those values in official tree don't forget to bump
- * MSG_VERSION */
--#define MAXTERMLEN 32
-+#define MAXTERMLEN 63
- #define MAXLOGINLEN 256
-
diff --git a/sysutils/screen49/files/patch-osdef.h.in b/sysutils/screen49/files/patch-osdef.h.in
deleted file mode 100644
index c8249fc3d3bc..000000000000
--- a/sysutils/screen49/files/patch-osdef.h.in
+++ /dev/null
@@ -1,19 +0,0 @@
---- osdef.h.in.orig 2023-08-16 00:29:26 UTC
-+++ osdef.h.in
-@@ -28,6 +28,8 @@
- ****************************************************************
- */
-
-+#include <sys/param.h>
-+#if defined(__FreeBSD_version) && __FreeBSD_version < 1500020
- extern int printf __P((char *, ...));
- extern int fprintf __P((FILE *, char *, ...));
- extern int sprintf __P((char *, char *, ...));
-@@ -71,6 +73,7 @@ extern void bcopy __P((char *, char *, int));
- #else
- extern void bcopy __P((char *, char *, int));
- #endif
-+#endif /* __FreeBSD_version */
-
- #ifdef BSDWAIT
- struct rusage; /* for wait3 __P */
diff --git a/sysutils/screen49/files/patch-resize.c b/sysutils/screen49/files/patch-resize.c
deleted file mode 100644
index 216fec9c1ab6..000000000000
--- a/sysutils/screen49/files/patch-resize.c
+++ /dev/null
@@ -1,20 +0,0 @@
---- resize.c.orig 2023-08-16 00:29:26 UTC
-+++ resize.c
-@@ -683,6 +683,17 @@ int wi, he, hi;
- he = MAXWIDTH;
- }
-
-+ 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/sysutils/screen49/files/patch-screen.c b/sysutils/screen49/files/patch-screen.c
deleted file mode 100644
index bde83a3b06cc..000000000000
--- a/sysutils/screen49/files/patch-screen.c
+++ /dev/null
@@ -1,120 +0,0 @@
---- screen.c.orig 2023-08-16 00:29:26 UTC
-+++ screen.c
-@@ -230,8 +230,6 @@ int multiattach;
- int multi_uid;
- int own_uid;
- int multiattach;
--int tty_mode;
--int tty_oldmode = -1;
- #endif
-
- char HostName[MAXSTR];
-@@ -1009,9 +1007,6 @@ int main(int ac, char** av)
-
- /* ttyname implies isatty */
- SetTtyname(true, &st);
--#ifdef MULTIUSER
-- tty_mode = (int)st.st_mode & 0777;
--#endif
-
- fl = fcntl(0, F_GETFL, 0);
- if (fl != -1 && (fl & (O_RDWR|O_RDONLY|O_WRONLY)) == O_RDWR)
-@@ -1127,15 +1122,28 @@ int main(int ac, char** av)
- #endif
- }
-
-- if (stat(SockPath, &st) == -1)
-- Panic(errno, "Cannot access %s", SockPath);
-- else
-- if (!S_ISDIR(st.st_mode))
-+ if (stat(SockPath, &st) == -1) {
-+ if (eff_uid == real_uid) {
-+ Panic(errno, "Cannot access %s", SockPath);
-+ } else {
-+ Panic(0, "Error accessing %s", SockPath);
-+ }
-+ } else if (!S_ISDIR(st.st_mode)) {
-+ if (eff_uid == real_uid || st.st_uid == real_uid) {
- Panic(0, "%s is not a directory.", SockPath);
-+ } else {
-+ Panic(0, "Error accessing %s", SockPath);
-+ }
-+ }
- #ifdef MULTIUSER
- if (multi) {
-- if ((int)st.st_uid != multi_uid)
-- Panic(0, "%s is not the owner of %s.", multi, SockPath);
-+ if ((int)st.st_uid != multi_uid) {
-+ if (eff_uid == real_uid || st.st_uid == real_uid) {
-+ Panic(0, "%s is not the owner of %s.", multi, SockPath);
-+ } else {
-+ Panic(0, "Error accessing %s", SockPath);
-+ }
-+ }
- }
- else
- #endif
-@@ -1149,9 +1157,13 @@ int main(int ac, char** av)
- Panic(0, "You are not the owner of %s.", SockPath);
- #endif
- }
--
-- if ((st.st_mode & 0777) != 0700)
-- Panic(0, "Directory %s must have mode 700.", SockPath);
-+ if ((st.st_mode & 0777) != 0700) {
-+ if (eff_uid == real_uid || st.st_uid == real_uid) {
-+ Panic(0, "Directory %s must have mode 700.", SockPath);
-+ } else {
-+ Panic(0, "Error accessing %s", SockPath);
-+ }
-+ }
- if (SockMatch && index(SockMatch, '/'))
- Panic(0, "Bad session name '%s'", SockMatch);
- SockName = SockPath + strlen(SockPath) + 1;
-@@ -1189,8 +1201,14 @@ int main(int ac, char** av)
- else
- exit(9 + (fo || oth ? 1 : 0) + fo);
- }
-- if (fo == 0)
-- Panic(0, "No Sockets found in %s.\n", SockPath);
-+ if (fo == 0) {
-+ if (eff_uid == real_uid || st.st_uid == real_uid) {
-+ Panic(0, "No Sockets found in %s.\n", SockPath);
-+ } else {
-+ Panic(0, "Error accessing %s", SockPath);
-+ }
-+ }
-+
- Msg(0, "%d Socket%s in %s.", fo, fo > 1 ? "s" : "", SockPath);
- eexit(0);
- }
-@@ -2170,20 +2188,6 @@ DEFINE_VARARGS_FN(Panic)
- if (D_userpid)
- Kill(D_userpid, SIG_BYE);
- }
--#ifdef MULTIUSER
-- if (tty_oldmode >= 0) {
--
--# ifdef USE_SETEUID
-- if (setuid(own_uid))
-- xseteuid(own_uid); /* may be a loop. sigh. */
--# else
-- setuid(own_uid);
--# endif
--
-- debug1("Panic: changing back modes from %s\n", attach_tty);
-- chmod(attach_tty, tty_oldmode);
-- }
--#endif
- eexit(1);
- }
-
-@@ -2234,7 +2238,7 @@ static char *pad_expand(char *buf, char *p, int numpad
- pn2 = pn = p + padlen;
- r = winmsg_numrend;
- while (p >= buf) {
-- if (r && *p != 127 && p - buf == winmsg_rendpos[r - 1]) {
-+ if (r && p - buf == winmsg_rendpos[r - 1]) {
- winmsg_rendpos[--r] = pn - buf;
- continue;
- }
diff --git a/sysutils/screen49/files/patch-socket.c b/sysutils/screen49/files/patch-socket.c
deleted file mode 100644
index 01bd213ae5c4..000000000000
--- a/sysutils/screen49/files/patch-socket.c
+++ /dev/null
@@ -1,97 +0,0 @@
---- socket.c.orig 2025-05-13 14:58:03 UTC
-+++ socket.c
-@@ -171,8 +171,13 @@ bool *is_sock;
- xsetegid(real_gid);
- #endif
-
-- if ((dirp = opendir(SockPath)) == 0)
-- Panic(errno, "Cannot opendir %s", SockPath);
-+ if ((dirp = opendir(SockPath)) == 0) {
-+ if (eff_uid == real_uid) {
-+ Panic(errno, "Cannot opendir %s", SockPath);
-+ } else {
-+ Panic(0, "Error accessing %s", SockPath);
-+ }
-+ }
-
- slist = 0;
- slisttail = &slist;
-@@ -841,6 +846,11 @@ int pid;
- return UserStatus();
- }
-
-+static void KillUnpriv(pid_t pid, int sig) {
-+ UserContext();
-+ UserReturn(kill(pid, sig));
-+}
-+
- #ifdef hpux
- /*
- * From: "F. K. Bruner" <napalm@ugcs.caltech.edu>
-@@ -926,14 +936,14 @@ struct win *wi;
- {
- Msg(errno, "Could not perform necessary sanity checks on pts device.");
- close(i);
-- Kill(pid, SIG_BYE);
-+ KillUnpriv(pid, SIG_BYE);
- return -1;
- }
- if (strcmp(ttyname_in_ns, m->m_tty))
- {
- Msg(errno, "Attach: passed fd does not match tty: %s - %s!", ttyname_in_ns, m->m_tty[0] != '\0' ? m->m_tty : "(null)");
- close(i);
-- Kill(pid, SIG_BYE);
-+ KillUnpriv(pid, SIG_BYE);
- return -1;
- }
- /* m->m_tty so far contains the actual name of the pts device in the
-@@ -950,19 +960,19 @@ struct win *wi;
- {
- Msg(errno, "Attach: passed fd does not match tty: %s - %s!", m->m_tty, myttyname ? myttyname : "NULL");
- close(i);
-- Kill(pid, SIG_BYE);
-+ KillUnpriv(pid, SIG_BYE);
- return -1;
- }
- }
- else if ((i = secopen(m->m_tty, O_RDWR | O_NONBLOCK, 0)) < 0)
- {
- Msg(errno, "Attach: Could not open %s!", m->m_tty);
-- Kill(pid, SIG_BYE);
-+ KillUnpriv(pid, SIG_BYE);
- return -1;
- }
- #ifdef MULTIUSER
- if (attach)
-- Kill(pid, SIGCONT);
-+ KillUnpriv(pid, SIGCONT);
- #endif
-
- #if defined(ultrix) || defined(pyr) || defined(NeXT)
-@@ -975,7 +985,7 @@ struct win *wi;
- {
- write(i, "Attaching from inside of screen?\n", 33);
- close(i);
-- Kill(pid, SIG_BYE);
-+ KillUnpriv(pid, SIG_BYE);
- Msg(0, "Attach msg ignored: coming from inside.");
- return -1;
- }
-@@ -986,7 +996,7 @@ struct win *wi;
- {
- write(i, "Access to session denied.\n", 26);
- close(i);
-- Kill(pid, SIG_BYE);
-+ KillUnpriv(pid, SIG_BYE);
- Msg(0, "Attach: access denied for user %s.", user);
- return -1;
- }
-@@ -1304,7 +1314,7 @@ ReceiveMsg()
- Msg(0, "Query attempt with bad pid(%d)!", m.m.command.apid);
- }
- else {
-- Kill(m.m.command.apid,
-+ KillUnpriv(m.m.command.apid,
- (queryflag >= 0)
- ? SIGCONT
- : SIG_BYE); /* Send SIG_BYE if an error happened */
diff --git a/sysutils/screen49/files/patch-termcap.c b/sysutils/screen49/files/patch-termcap.c
deleted file mode 100644
index a7abaa54ce81..000000000000
--- a/sysutils/screen49/files/patch-termcap.c
+++ /dev/null
@@ -1,15 +0,0 @@
---- termcap.c.orig 2023-08-16 00:29:26 UTC
-+++ termcap.c
-@@ -361,11 +361,7 @@ int he;
- if (D_CG0)
- {
- if (D_CS0 == 0)
--#ifdef TERMINFO
-- D_CS0 = "\033(%p1%c";
--#else
-- D_CS0 = "\033(%.";
--#endif
-+ D_CS0 = "\033(%p1%c"; /* Old ncurses can't handle %. */
- if (D_CE0 == 0)
- D_CE0 = "\033(B";
- D_AC = 0;
diff --git a/sysutils/screen49/files/patch-terminfo__checktc.c b/sysutils/screen49/files/patch-terminfo__checktc.c
deleted file mode 100644
index 7c38ac40c386..000000000000
--- a/sysutils/screen49/files/patch-terminfo__checktc.c
+++ /dev/null
@@ -1,18 +0,0 @@
---- terminfo/checktc.c.orig 2023-08-16 00:29:26 UTC
-+++ terminfo/checktc.c
-@@ -171,6 +171,7 @@ char *s;
- fflush(stdout);
- }
-
-+#ifndef __FreeBSD__
- void CPutStr(s, c)
- char *s;
- int c;
-@@ -178,6 +179,7 @@ int c;
- tputs(tgoto(s, 0, c), 1, putcha);
- fflush(stdout);
- }
-+#endif /* __FreeBSD__ */
-
- void CCPutStr(s, x, y)
- char *s;
diff --git a/sysutils/screen49/files/patch-utmp.c b/sysutils/screen49/files/patch-utmp.c
deleted file mode 100644
index e019f8cedc09..000000000000
--- a/sysutils/screen49/files/patch-utmp.c
+++ /dev/null
@@ -1,156 +0,0 @@
---- utmp.c.orig 2023-08-16 00:29:26 UTC
-+++ utmp.c
-@@ -26,6 +26,7 @@
- ****************************************************************
- */
-
-+#include <sys/param.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
-@@ -89,11 +90,13 @@ static struct utmp *getutslot __P((slot_t));
- static int pututslot __P((slot_t, struct utmp *, char *, struct win *));
- static struct utmp *getutslot __P((slot_t));
- #ifndef GETUTENT
-+#if 0
- static struct utmp *getutent __P((void));
- static void endutent __P((void));
- static int initutmp __P((void));
- static void setutent __P((void));
- #endif
-+#endif
- #if defined(linux) && defined(GETUTENT)
- static struct utmp *xpututline __P((struct utmp *utmp));
- # define pututline xpututline
-@@ -102,9 +105,7 @@ static char UtmpName[] = UTMPFILE;
-
- static int utmpok;
- static char UtmpName[] = UTMPFILE;
--#ifndef UTMP_HELPER
- static int utmpfd = -1;
--#endif
-
-
- # if defined(GETUTENT) && (!defined(SVR4) || defined(__hpux)) && ! defined(__CYGWIN__)
-@@ -409,12 +410,6 @@ struct win *wi;
- register slot_t slot;
- struct utmp u;
- int saved_ut;
--#ifdef UTHOST
-- char *p;
-- char host[sizeof(D_loginhost) + 15];
--#else
-- char *host = 0;
--#endif /* UTHOST */
-
- wi->w_slot = (slot_t)0;
- if (!utmpok || wi->w_type != W_TYPE_PTY)
-@@ -435,51 +430,13 @@ struct win *wi;
- makeuser(&u, stripdev(wi->w_tty), LoginName, wi->w_pid);
-
- #ifdef UTHOST
-- host[sizeof(host) - 15] = '\0';
-- if (display)
-- {
-- strncpy(host, D_loginhost, sizeof(host) - 15);
-- if (D_loginslot != (slot_t)0 && D_loginslot != (slot_t)-1 && host[0] != '\0')
-- {
-- /*
-- * we want to set our ut_host field to something like
-- * ":ttyhf:s.0" or
-- * "faui45:s.0" or
-- * "132.199.81.4:s.0" (even this may hurt..), but not
-- * "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 != '.'))
-- break;
-- if (*p)
-- {
-- for (p = host; *p; p++)
-- if (*p == '.' || (*p == ':' && p != host))
-- {
-- *p = '\0';
-- break;
-- }
-- }
-- }
-- else
-- {
-- strncpy(host + 1, stripdev(D_usertty), sizeof(host) - 15 - 1);
-- host[0] = ':';
-- }
-- }
-- else
-- strncpy(host, "local", sizeof(host) - 15);
--
-- sprintf(host + strlen(host), ":S.%d", wi->w_number);
-- debug1("rlogin hostname: '%s'\n", host);
--
- # if !defined(_SEQUENT_) && !defined(sequent)
-- strncpy(u.ut_host, host, sizeof(u.ut_host));
-+ if (display)
-+ strncpy(u.ut_host, D_loginhost, sizeof(u.ut_host));
- # endif
- #endif /* UTHOST */
-
-- if (pututslot(slot, &u, host, wi) == 0)
-+ if (pututslot(slot, &u, D_loginhost, wi) == 0)
- {
- Msg(errno,"Could not write %s", UtmpName);
- UT_CLOSE;
-@@ -607,7 +564,7 @@ struct utmp *u;
- struct utmp *u;
- {
- u->ut_type = DEAD_PROCESS;
--#if (!defined(linux) || defined(EMPTY)) && !defined(__CYGWIN__)
-+#if (!defined(linux) || defined(EMPTY)) && !defined(__CYGWIN__) && !defined(__FreeBSD__)
- u->ut_exit.e_termination = 0;
- u->ut_exit.e_exit = 0;
- #endif
-@@ -640,7 +597,11 @@ int pid;
- /* must use temp variable because of NetBSD/sparc64, where
- * ut_xtime is long(64) but time_t is int(32) */
- (void)time(&now);
-- u->ut_time = now;
-+#if defined(__FreeBSD_version) && __FreeBSD_version < 900000
-+ u->ut_time = now;
-+#else
-+ u->ut_tv.tv_sec = now;
-+#endif
- }
-
- static slot_t
-@@ -670,6 +631,7 @@ initutmp()
- return (utmpfd = open(UtmpName, O_RDWR)) >= 0;
- }
-
-+#if 0
- static void
- setutent()
- {
-@@ -694,6 +656,7 @@ getutent()
- return 0;
- return &uent;
- }
-+#endif
-
- static struct utmp *
- getutslot(slot)
-@@ -750,9 +713,13 @@ int pid;
- {
- time_t now;
- strncpy(u->ut_line, line, sizeof(u->ut_line));
-- strncpy(u->ut_name, user, sizeof(u->ut_name));
-+ strncpy(u->ut_user, user, sizeof(u->ut_user));
- (void)time(&now);
-- u->ut_time = now;
-+#if defined(__FreeBSD_version) && __FreeBSD_version < 900000
-+ u->ut_time = now;
-+#else
-+ u->ut_tv.tv_sec = now;
-+#endif
- }
-
- static slot_t
diff --git a/sysutils/screen49/files/screenrc.sample b/sysutils/screen49/files/screenrc.sample
deleted file mode 100644
index 1ce5561ebf31..000000000000
--- a/sysutils/screen49/files/screenrc.sample
+++ /dev/null
@@ -1,10 +0,0 @@
-startup_message off
-defscrollback 5000
-termcapinfo xterm ti@:te@
-termcapinfo xterm-color ti@:te@
-hardstatus alwayslastline
-hardstatus string '%{gk}[%{G}%H%{g}][%= %{wk}%?%-Lw%?%{=b kR}(%{W}%n*%f %t%?(%u)%?%{=b kR})%{= kw}%?%+Lw%?%?%= %{g}]%{=b C}[%m/%d/%y %C %A]%{W}'
-vbell off
-shell -$SHELL
-logtstamp on
-logtstamp after 1
diff --git a/sysutils/screen49/pkg-descr b/sysutils/screen49/pkg-descr
deleted file mode 100644
index 7b753f95511d..000000000000
--- a/sysutils/screen49/pkg-descr
+++ /dev/null
@@ -1,7 +0,0 @@
-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/sysutils/screen49/pkg-message b/sysutils/screen49/pkg-message
deleted file mode 100644
index 899fc017b061..000000000000
--- a/sysutils/screen49/pkg-message
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-{ type: install
- message: <<EOM
-As of GNU Screen 4.4.0:
-
-Note that there was fix to screen message structure field
-responsible for $TERM handling, making it impossible
-to attach to older versions.
-EOM
-}
-]
diff --git a/sysutils/screen49/pkg-plist b/sysutils/screen49/pkg-plist
deleted file mode 100644
index e47f35430f9a..000000000000
--- a/sysutils/screen49/pkg-plist
+++ /dev/null
@@ -1,26 +0,0 @@
-bin/screen
-%%MULTISUID%%bin/screen-4.9.1
-share/man/man1/screen.1.gz
-%%DATADIR%%/utf8encodings/01
-%%DATADIR%%/utf8encodings/02
-%%DATADIR%%/utf8encodings/03
-%%DATADIR%%/utf8encodings/04
-%%DATADIR%%/utf8encodings/18
-%%DATADIR%%/utf8encodings/19
-%%DATADIR%%/utf8encodings/a1
-%%DATADIR%%/utf8encodings/bf
-%%DATADIR%%/utf8encodings/c2
-%%DATADIR%%/utf8encodings/c3
-%%DATADIR%%/utf8encodings/c4
-%%DATADIR%%/utf8encodings/c6
-%%DATADIR%%/utf8encodings/c7
-%%DATADIR%%/utf8encodings/c8
-%%DATADIR%%/utf8encodings/cc
-%%DATADIR%%/utf8encodings/cd
-%%DATADIR%%/utf8encodings/d6
-@comment We always install the same screenrc it just depends on if we
-@comment are installing the the one bundled with source, or the one from
-@comment FILESDIR/screenrc.sample
-@sample %%ETCDIR%%/screenrc.sample
-%%EXAMPLESDIR%%/screenrc.sample-1
-%%EXAMPLESDIR%%/screenrc.sample-2