commit:     dda0a1178181a8e7a589a130071208dc6411b5b6
Author:     Norbert Norbiros <norbiros <AT> protonmail <DOT> com>
AuthorDate: Sat Mar  8 17:44:33 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Mar 31 23:08:01 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dda0a117

app-misc/screen: add 5.0.0

[sam: Note that it's masked given 
https://lists.gnu.org/archive/html/screen-devel/2024-10/msg00007.html.]

Closes: https://bugs.gentoo.org/935755
Signed-off-by: Norbert Norbiros <norbiros <AT> protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/40916
Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-misc/screen/Manifest                           |   1 +
 app-misc/screen/files/screen-5.0.0-utmp-musl.patch |  13 ++
 app-misc/screen/metadata.xml                       |   1 +
 app-misc/screen/screen-5.0.0.ebuild                | 140 +++++++++++++++++++++
 profiles/package.mask                              |   6 +
 5 files changed, 161 insertions(+)

diff --git a/app-misc/screen/Manifest b/app-misc/screen/Manifest
index bb2dea0de8cc..382429842a2b 100644
--- a/app-misc/screen/Manifest
+++ b/app-misc/screen/Manifest
@@ -1 +1,2 @@
 DIST screen-4.9.1.tar.gz 1040785 BLAKE2B 
27d9c100bc1f747e39e109a4957702388d943c7d3b75b4c59dfc3894456d5249257742106fb24cf6f07a36764db0a1c5f7e0a44123edda1c570d771d7f46c638
 SHA512 
1f278313528815f4246bb162ced611c5d77321d11055e8d853168dc804c75d5f78568056a23e46db0640e1605e5cad4a5ce05e95e50cf02bb322cb6f57e5a126
+DIST screen-5.0.0.tar.gz 895882 BLAKE2B 
5ff218afc1692ae201776f759ff2217a51dcf02202e4ba5d12de50a768df83e0e2a7a3511a5f85a3b21362892f31a4fd90d6444918915165ae12a8c0c2b3af39
 SHA512 
18a163313025c58950ec65fa83037ba1df0fa8e2346925593217fb0a6596f2f51914a4f0aec7f0e1c280d3d3ef964e7a886521f41f4b96f4ff08935be7f62117

diff --git a/app-misc/screen/files/screen-5.0.0-utmp-musl.patch 
b/app-misc/screen/files/screen-5.0.0-utmp-musl.patch
new file mode 100644
index 000000000000..de3d2fb71840
--- /dev/null
+++ b/app-misc/screen/files/screen-5.0.0-utmp-musl.patch
@@ -0,0 +1,13 @@
+
+Patch from: https://github.com/void-linux/void-packages/commit/0f6da07
+
+--- a/utmp.c
++++ b/utmp.c
+@@ -30,6 +30,7 @@
+ 
+ #include "utmp.h"
+ 
++#include <signal.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
\ No newline at end of file

diff --git a/app-misc/screen/metadata.xml b/app-misc/screen/metadata.xml
index ff53fc5f118c..fa0bcd20aedd 100644
--- a/app-misc/screen/metadata.xml
+++ b/app-misc/screen/metadata.xml
@@ -29,6 +29,7 @@
   <use>
     <flag name="multiuser">Enable multiuser support (by setting correct 
permissions)</flag>
     <flag name="nethack">Express error messages in nethack style</flag>
+    <flag name="utempter">Enable support for 
<pkg>sys-libs/libutempter</pkg></flag>
   </use>
   <upstream>
     <remote-id type="cpe">cpe:/a:gnu:screen</remote-id>

diff --git a/app-misc/screen/screen-5.0.0.ebuild 
b/app-misc/screen/screen-5.0.0.ebuild
new file mode 100644
index 000000000000..0b436bb9d018
--- /dev/null
+++ b/app-misc/screen/screen-5.0.0.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic pam tmpfiles
+
+DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
+HOMEPAGE="https://www.gnu.org/software/screen/";
+
+if [[ ${PV} != 9999 ]] ; then
+       SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos 
~x64-macos ~x64-solaris"
+else
+       inherit git-r3
+       EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git";
+       EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
+       S="${WORKDIR}"/${P}/src
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="debug nethack pam selinux utempter multiuser"
+
+DEPEND=">=sys-libs/ncurses-5.2:=
+       virtual/libcrypt:=
+       pam? ( sys-libs/pam )"
+RDEPEND="${DEPEND}
+       acct-group/utmp
+       selinux? ( sec-policy/selinux-screen )
+       utempter? ( sys-libs/libutempter:= )"
+BDEPEND="sys-apps/texinfo"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-5.0.0-utmp-musl.patch
+)
+
+src_prepare() {
+       default
+
+       # 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:' canvas.h sched.c screen.h 
window.h winmsg.c || die
+       sed -i 's:sched.h:_sched.h:' Makefile.in || 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-lfs-flags
+       append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+       if [[ ${CHOST} == *-solaris* ]]; then
+               # enable msg_header by upping the feature standard compatible
+               # with c99 mode
+               append-cppflags -D_XOPEN_SOURCE=600
+       fi
+
+       use nethack || append-cppflags "-DNONETHACK"
+       use debug && append-cppflags "-DDEBUG"
+
+       local myeconfargs=(
+               --with-socket-dir="${EPREFIX}/tmp/${PN}"
+               --with-system-screenrc="${EPREFIX}/etc/screenrc"
+               --with-pty-mode=0620
+               --with-pty-group=5
+               --enable-rxvt_osc
+               --enable-telnet
+               --enable-colors256
+               $(use_enable pam)
+               $(use_enable utempter utmp)
+       )
+
+       econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+       LC_ALL=POSIX emake comm.h term.h
+
+       emake -C doc screen.info
+       default
+}
+
+src_install() {
+       local DOCS=(
+               README ChangeLog INSTALL TODO NEWS*
+               doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
+       )
+
+       emake DESTDIR="${D}" SCREEN="${P}" install
+
+       local tmpfiles_perms tmpfiles_group
+
+       if use multiuser || use prefix ; then
+               fperms 4755 /usr/bin/${P}
+               tmpfiles_perms="0755"
+               tmpfiles_group="root"
+       else
+               fowners root:utmp /usr/bin/${P}
+               fperms 2755 /usr/bin/${P}
+               tmpfiles_perms="0775"
+               tmpfiles_group="utmp"
+       fi
+
+       newtmpfiles - screen.conf <<<"d /tmp/screen ${tmpfiles_perms} root 
${tmpfiles_group}"
+
+       insinto /usr/share/${PN}
+       doins terminfo/{screencap,screeninfo.src}
+
+       insinto /etc
+       doins "${FILESDIR}"/screenrc
+
+       if use pam; then
+               pamd_mimic_system screen auth
+       fi
+
+       dodoc "${DOCS[@]}"
+}
+
+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
+
+       tmpfiles_process screen.conf
+
+       ewarn "This revision changes the screen socket location to 
${EROOT}/tmp/${PN}"
+}

diff --git a/profiles/package.mask b/profiles/package.mask
index 0d3c534fde6d..d5d6778162a0 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -33,6 +33,12 @@
 
 #--- END OF EXAMPLES ---
 
+# Norbert Norbiros <[email protected]> (2025-04-01)
+# Screen v5.0.0 has a lot of regressions
+# https://lists.gnu.org/archive/html/screen-devel/2024-10/msg00007.html
+# Unmask it after it is properly tested & fixed
+=app-misc/screen-5*
+
 # Volkmar W. Pogatzki <[email protected]> (2025-03-31)
 # Depends on broken dev-java/rxtx, bugs #761103, #867409, #874444, #898170
 # #927898.

Reply via email to