summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/screen')
-rw-r--r--app-misc/screen/Manifest1
-rw-r--r--app-misc/screen/files/screen-4.9.0-clang16-chmod.patch12
-rw-r--r--app-misc/screen/files/screen-4.9.1-utmp-exit.patch43
-rw-r--r--app-misc/screen/metadata.xml1
-rw-r--r--app-misc/screen/screen-4.9.0-r3.ebuild (renamed from app-misc/screen/screen-4.9.0-r2.ebuild)3
-rw-r--r--app-misc/screen/screen-4.9.1-r1.ebuild (renamed from app-misc/screen/screen-4.9.0-r1.ebuild)10
-rw-r--r--app-misc/screen/screen-4.9.1.ebuild145
-rw-r--r--app-misc/screen/screen-9999.ebuild1
8 files changed, 210 insertions, 6 deletions
diff --git a/app-misc/screen/Manifest b/app-misc/screen/Manifest
index 5afb91c4b64a..9412dc3ffb01 100644
--- a/app-misc/screen/Manifest
+++ b/app-misc/screen/Manifest
@@ -1 +1,2 @@
DIST screen-4.9.0.tar.gz 798229 BLAKE2B 0f64a14ce9a719bd4a6d045c55069769045a09ee2086c44c2e3d9da6d1e5ada2f094e00e16029767e1155ce35d4f360d0e2879995eefa052f3214ced71b7617c SHA512 18bbb085d77ecd02cbc02fa88a945c39f06e0c6de4eeaa16b278440dac5c9896811abbe0838144e997cd344ae08b9530399fa8fcb31a65fc571ead90e8307f84
+DIST screen-4.9.1.tar.gz 1040785 BLAKE2B 27d9c100bc1f747e39e109a4957702388d943c7d3b75b4c59dfc3894456d5249257742106fb24cf6f07a36764db0a1c5f7e0a44123edda1c570d771d7f46c638 SHA512 1f278313528815f4246bb162ced611c5d77321d11055e8d853168dc804c75d5f78568056a23e46db0640e1605e5cad4a5ce05e95e50cf02bb322cb6f57e5a126
diff --git a/app-misc/screen/files/screen-4.9.0-clang16-chmod.patch b/app-misc/screen/files/screen-4.9.0-clang16-chmod.patch
new file mode 100644
index 000000000000..63872219a23f
--- /dev/null
+++ b/app-misc/screen/files/screen-4.9.0-clang16-chmod.patch
@@ -0,0 +1,12 @@
+Bug: https://bugs.gentoo.org/894562
+Taken from: https://git.savannah.gnu.org/cgit/screen.git/commit/?id=7f320d3a643ec95682a7213b7e991e27038d8a57
+--- a/display.c
++++ b/display.c
+@@ -27,6 +27,7 @@
+ */
+
+ #include <sys/types.h>
++#include <sys/stat.h>
+ #include <signal.h>
+ #include <fcntl.h>
+ #ifndef sun
diff --git a/app-misc/screen/files/screen-4.9.1-utmp-exit.patch b/app-misc/screen/files/screen-4.9.1-utmp-exit.patch
new file mode 100644
index 000000000000..71c726b352db
--- /dev/null
+++ b/app-misc/screen/files/screen-4.9.1-utmp-exit.patch
@@ -0,0 +1,43 @@
+From 2f1b9dfe03133c9b77ea450aed088d65128dc547 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net>
+Date: Tue, 5 Apr 2016 12:47:08 +0200
+Subject: [PATCH] check if we have ut_exit in utmpx struct
+
+--- a/acconfig.h
++++ b/acconfig.h
+@@ -430,6 +430,11 @@
+ */
+ #undef BUGGYGETLOGIN
+
++/*
++ * Define if your utmpx has ut_exit struct
++ */
++#undef HAVE_UT_EXIT
++
+ /*
+ * If your system has the calls setreuid() and setregid(),
+ * define HAVE_SETREUID. Otherwise screen will use a forked process to
+--- a/configure.ac
++++ b/configure.ac
+@@ -438,6 +438,10 @@ AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1,
+ AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok))
+ rm -f /tmp/conftest*
+ fi
++AC_CHECKING(ut_exit)
++AC_TRY_COMPILE([
++#include <utmpx.h>
++],[struct utmpx u; u.ut_exit.e_exit;], AC_DEFINE(HAVE_UT_EXIT))
+
+ dnl
+ dnl **** SOCKET tests ****
+--- a/utmp.c
++++ b/utmp.c
+@@ -607,7 +607,7 @@ makedead(u)
+ struct utmp *u;
+ {
+ u->ut_type = DEAD_PROCESS;
+-#if (!defined(linux) || defined(EMPTY)) && !defined(__CYGWIN__)
++#if defined(HAVE_UT_EXIT)
+ u->ut_exit.e_termination = 0;
+ u->ut_exit.e_exit = 0;
+ #endif
diff --git a/app-misc/screen/metadata.xml b/app-misc/screen/metadata.xml
index 943545f83e52..ff53fc5f118c 100644
--- a/app-misc/screen/metadata.xml
+++ b/app-misc/screen/metadata.xml
@@ -31,6 +31,7 @@
<flag name="nethack">Express error messages in nethack style</flag>
</use>
<upstream>
+ <remote-id type="cpe">cpe:/a:gnu:screen</remote-id>
<remote-id type="savannah">screen</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-misc/screen/screen-4.9.0-r2.ebuild b/app-misc/screen/screen-4.9.0-r3.ebuild
index abcfc17e441f..4bb3440413fa 100644
--- a/app-misc/screen/screen-4.9.0-r2.ebuild
+++ b/app-misc/screen/screen-4.9.0-r3.ebuild
@@ -10,7 +10,7 @@ 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 ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~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"
@@ -36,6 +36,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-4.6.2-utmp-exit.patch
"${FILESDIR}"/${PN}-4.9.0-configure-implicit-function-decls.patch
"${FILESDIR}"/${P}-CVE-2023-24626.patch
+ "${FILESDIR}"/${PN}-4.9.0-clang16-chmod.patch
)
src_prepare() {
diff --git a/app-misc/screen/screen-4.9.0-r1.ebuild b/app-misc/screen/screen-4.9.1-r1.ebuild
index c84a04bf2355..b5bc0362fbf7 100644
--- a/app-misc/screen/screen-4.9.0-r1.ebuild
+++ b/app-misc/screen/screen-4.9.1-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit autotools flag-o-matic pam tmpfiles
@@ -10,7 +10,7 @@ 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 ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~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"
@@ -33,8 +33,7 @@ BDEPEND="sys-apps/texinfo"
PATCHES=(
# Don't use utempter even if it is found on the system.
"${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
- "${FILESDIR}"/${PN}-4.6.2-utmp-exit.patch
- "${FILESDIR}"/${PN}-4.9.0-configure-implicit-function-decls.patch
+ "${FILESDIR}"/${PN}-4.9.1-utmp-exit.patch
)
src_prepare() {
@@ -65,6 +64,7 @@ src_prepare() {
}
src_configure() {
+ append-lfs-flags
append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
if [[ ${CHOST} == *-solaris* ]]; then
diff --git a/app-misc/screen/screen-4.9.1.ebuild b/app-misc/screen/screen-4.9.1.ebuild
new file mode 100644
index 000000000000..51788a01b0d4
--- /dev/null
+++ b/app-misc/screen/screen-4.9.1.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2023 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 ~ia64 ~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 multiuser"
+
+DEPEND=">=sys-libs/ncurses-5.2:=
+ virtual/libcrypt:=
+ pam? ( sys-libs/pam )"
+RDEPEND="${DEPEND}
+ acct-group/utmp
+ selinux? ( sec-policy/selinux-screen )"
+BDEPEND="sys-apps/texinfo"
+
+PATCHES=(
+ # Don't use utempter even if it is found on the system.
+ "${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
+ "${FILESDIR}"/${PN}-4.9.1-utmp-exit.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:' screen.h || 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
+
+ if [[ ${CHOST} == *-darwin* ]] || use elibc_musl; then
+ sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
+ fi
+
+ # disable musl dummy headers for utmp[x]
+ use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
+
+ # reconfigure
+ eautoreconf
+}
+
+src_configure() {
+ 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-sys-screenrc="${EPREFIX}/etc/screenrc"
+ --with-pty-mode=0620
+ --with-pty-group=5
+ --enable-rxvt_osc
+ --enable-telnet
+ --enable-colors256
+ $(use_enable pam)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ LC_ALL=POSIX emake comm.h term.h
+ emake osdef.h
+
+ emake -C doc screen.info
+ default
+}
+
+src_install() {
+ local DOCS=(
+ README ChangeLog INSTALL TODO NEWS* patchlevel.h
+ 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/app-misc/screen/screen-9999.ebuild b/app-misc/screen/screen-9999.ebuild
index 45e4dc36300a..f7b2fb9bb6fc 100644
--- a/app-misc/screen/screen-9999.ebuild
+++ b/app-misc/screen/screen-9999.ebuild
@@ -65,6 +65,7 @@ src_prepare() {
}
src_configure() {
+ append-lfs-flags
append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
if [[ ${CHOST} == *-solaris* ]]; then