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.
