diff options
author | Sam James <sam@gentoo.org> | 2023-10-16 07:49:00 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-10-16 07:49:09 +0100 |
commit | 7825386fe4afd569cac3c27fe0bf72b9b55f2bc1 (patch) | |
tree | 316bea6eed3fe65fd0f760db30bc124e6cf9a46a /app-misc/screen | |
parent | x11-plugins/astime: fix QA issue (diff) | |
download | gentoo-7825386fe4afd569cac3c27fe0bf72b9b55f2bc1.tar.gz gentoo-7825386fe4afd569cac3c27fe0bf72b9b55f2bc1.tar.bz2 gentoo-7825386fe4afd569cac3c27fe0bf72b9b55f2bc1.zip |
app-misc/screen: add 4.9.1
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-misc/screen')
-rw-r--r-- | app-misc/screen/Manifest | 1 | ||||
-rw-r--r-- | app-misc/screen/files/screen-4.9.1-utmp-exit.patch | 43 | ||||
-rw-r--r-- | app-misc/screen/screen-4.9.1.ebuild | 145 |
3 files changed, 189 insertions, 0 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.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/screen-4.9.1.ebuild b/app-misc/screen/screen-4.9.1.ebuild new file mode 100644 index 000000000000..06145f1ca8e8 --- /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}" +} |