Skip to content

Commit

Permalink
app-misc/screen: add 4.9.0_rc1 (unkeyworded)
Browse files Browse the repository at this point in the history
See https://lists.gnu.org/archive/html/screen-devel/2022-01/msg00010.html
for call for testers. It's been a long time since the last release so any
testers are welcome.

Signed-off-by: Sam James <[email protected]>
  • Loading branch information
thesamesam committed Jan 22, 2022
1 parent 947065b commit 2fa4add
Show file tree
Hide file tree
Showing 2 changed files with 156 additions and 0 deletions.
1 change: 1 addition & 0 deletions app-misc/screen/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST screen-4.8.0.tar.gz 854854 BLAKE2B 97ef6f18bf2c63c477260b742ac0b3501f112d380c41ccecc5cf2853db853cc62d4fd6d37edeca35fb41a43b76d98a5cfe160749c992d284f9764b0a0fdcc778 SHA512 770ebaf6ee9be711bcb8a6104b3294f2bf4523dae6683fdc5eac4b3aff7e511be2d922b6b2ad28ec241113c2e4fe0d80f9a482ae1658adc19c8c3a3680caa25c
DIST screen-4.9.0_rc1.tar.gz 812374 BLAKE2B b908ec64f932dafe34cd0032fd59da9352cf9e7a56cce06c6b2664a84a25637cfc6679f73bfb47e0cacb590739bfa9b61125d942e63f2cb2ae1aaa1b1a2dea8d SHA512 1f87ce0bc1cbfaa8fd7437eee707de8e047bb8f110c26d40f5cb7916816d10ea1830281c680189e855af9cf2f4e712dc08a7c480961d9aee9ea4bb092557b508
155 changes: 155 additions & 0 deletions app-misc/screen/screen-4.9.0_rc1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit autotools flag-o-matic pam tmpfiles toolchain-funcs

DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
HOMEPAGE="https://www.gnu.org/software/screen/"

if [[ ${PV} != 9999 ]] ; then
if [[ ${PV} == *_rc* ]] ; then
# See https://lists.gnu.org/archive/html/screen-devel/2022-01/msg00010.html
MY_COMMIT="d591a396c7e41d10191c1f5676032d9e261da2f7"
SRC_URI="https://git.savannah.gnu.org/cgit/screen.git/snapshot/${PN}-${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}"/${PN}-${MY_COMMIT}/src
else
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
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-2"
SLOT="0"
IUSE="debug nethack pam selinux multiuser"

CDEPEND="
>=sys-libs/ncurses-5.2:0=
virtual/libcrypt:=
pam? ( sys-libs/pam )"
RDEPEND="${CDEPEND}
acct-group/utmp
selinux? ( sec-policy/selinux-screen )"
DEPEND="${CDEPEND}
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
)

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}"
}

0 comments on commit 2fa4add

Please sign in to comment.