summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/screen/screen-9999.ebuild')
-rw-r--r--app-misc/screen/screen-9999.ebuild123
1 files changed, 58 insertions, 65 deletions
diff --git a/app-misc/screen/screen-9999.ebuild b/app-misc/screen/screen-9999.ebuild
index 29951514a764..f7b2fb9bb6fc 100644
--- a/app-misc/screen/screen-9999.ebuild
+++ b/app-misc/screen/screen-9999.ebuild
@@ -1,16 +1,16 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit autotools eutils flag-o-matic pam tmpfiles toolchain-funcs user
+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
+if [[ ${PV} != 9999 ]] ; then
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
else
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git"
@@ -18,71 +18,75 @@ else
S="${WORKDIR}"/${P}/src
fi
-LICENSE="GPL-2"
+LICENSE="GPL-3+"
SLOT="0"
-IUSE="debug nethack pam selinux multiuser utmp"
+IUSE="debug nethack pam selinux multiuser"
-CDEPEND="
- >=sys-libs/ncurses-5.2:0=
+DEPEND=">=sys-libs/ncurses-5.2:=
+ virtual/libcrypt:=
pam? ( sys-libs/pam )"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-screen )
- utmp? (
- kernel_linux? ( sys-libs/libutempter )
- kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-lib-9.0 sys-libs/libutempter ) )
- )
-"
-DEPEND="${CDEPEND}
- sys-apps/texinfo"
-
-RESTRICT="test"
+RDEPEND="${DEPEND}
+ acct-group/utmp
+ selinux? ( sec-policy/selinux-screen )"
+BDEPEND="sys-apps/texinfo"
-pkg_setup() {
- # Make sure utmp group exists, as it's used later on.
- enewgroup utmp 406
-}
+PATCHES=(
+ # Don't use utempter even if it is found on the system.
+ "${FILESDIR}"/${P}-no-utempter.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 \
- -e '/include/ s:sched.h:_sched.h:' \
- screen.h winmsg.c canvas.h sched.c || die
- sed -i -e 's:sched.h:_sched.h:g' Makefile.in || die
+ sed -i '/include/ s:sched\.h:_sched.h:' \
+ screen.h winmsg.c window.h sched.c canvas.h || die
+ sed -i 's@[[:space:]]sched\.h@ _sched.h@' Makefile.in || die
- # Fix manpage.
+ # 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' \
- -e 's:/usr/tmp/screens/:'"${EPREFIX}"'/tmp/screen/:g' \
- doc/screen.1 \
- || die
+ -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-lfs-flags
append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
- [[ ${CHOST} == *-solaris* ]] && append-libs -lsocket -lnsl
+ 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"
- econf \
- --enable-socket-dir="${EPREFIX}/tmp/screen" \
- --with-system_screenrc="${EPREFIX}/etc/screenrc" \
- --with-pty-mode=0620 \
- --with-pty-group=5 \
- --enable-telnet \
- $(use_enable pam) \
- $(use_enable utmp)
+ local myeconfargs=(
+ --enable-socket-dir="${EPREFIX}/tmp/${PN}"
+ --with-system_screenrc="${EPREFIX}/etc/screenrc"
+ --with-pty-mode=0620
+ --with-pty-group=5
+ --enable-telnet
+ --enable-utmp
+ $(use_enable pam)
+ )
+ econf "${myeconfargs[@]}"
}
src_compile() {
@@ -98,55 +102,44 @@ src_install() {
doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
)
- emake DESTDIR="${D}" SCREEN=screen-${PV} install
+ emake DESTDIR="${D}" SCREEN="${P}" install
local tmpfiles_perms tmpfiles_group
- if use multiuser || use prefix
- then
- fperms 4755 /usr/bin/screen-${PV}
+ if use multiuser || use prefix ; then
+ fperms 4755 /usr/bin/${P}
tmpfiles_perms="0755"
tmpfiles_group="root"
else
- fowners root:utmp /usr/bin/screen-${PV}
- fperms 2755 /usr/bin/screen-${PV}
+ 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/screen
+ insinto /usr/share/${PN}
doins terminfo/{screencap,screeninfo.src}
insinto /etc
doins "${FILESDIR}"/screenrc
- pamd_mimic_system screen auth
+ if use pam; then
+ pamd_mimic_system screen auth
+ fi
dodoc "${DOCS[@]}"
}
pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]
- then
+ 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
- # Add /tmp/screen in case it doesn't exist yet. This should solve
- # problems like bug #508634 where tmpfiles.d isn't in effect.
- local rundir="${EROOT%/}/tmp/screen"
- if [[ ! -d ${rundir} ]] ; then
- if use multiuser || use prefix ; then
- tmpfiles_group="root"
- else
- tmpfiles_group="utmp"
- fi
- mkdir -m 0775 "${rundir}"
- chgrp ${tmpfiles_group} "${rundir}"
- fi
+ tmpfiles_process screen.conf
- ewarn "This revision changes the screen socket location to ${rundir}"
+ ewarn "This revision changes the screen socket location to ${EROOT}/tmp/${PN}"
}