Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-misc/screen/
Date: Thu, 27 Feb 2020 08:59:50
Message-Id: 1582793975.25b5156c8846199d363f932e7450b72ac2abdfa6.polynomial-c@gentoo
1 commit: 25b5156c8846199d363f932e7450b72ac2abdfa6
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Thu Feb 27 08:32:52 2020 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Thu Feb 27 08:59:35 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25b5156c
7
8 app-misc/screen: Synced live ebuild
9
10 Package-Manager: Portage-2.3.89, Repoman-2.3.20
11 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
12
13 app-misc/screen/metadata.xml | 4 +-
14 app-misc/screen/screen-9999.ebuild | 93 ++++++++++++++++++++------------------
15 2 files changed, 51 insertions(+), 46 deletions(-)
16
17 diff --git a/app-misc/screen/metadata.xml b/app-misc/screen/metadata.xml
18 index 85dc556e636..b10032bfdd9 100644
19 --- a/app-misc/screen/metadata.xml
20 +++ b/app-misc/screen/metadata.xml
21 @@ -27,9 +27,7 @@ run when their window is currently not visible and even when the whole screen
22 session is detached from the users terminal.
23 </longdescription>
24 <use>
25 - <flag name="multiuser">Enable multiuser support (by setting correct
26 - permissions)</flag>
27 + <flag name="multiuser">Enable multiuser support (by setting correct permissions)</flag>
28 <flag name="nethack">Express error messages in nethack style</flag>
29 - <flag name="utmp">Include utmp support</flag>
30 </use>
31 </pkgmetadata>
32
33 diff --git a/app-misc/screen/screen-9999.ebuild b/app-misc/screen/screen-9999.ebuild
34 index 29951514a76..aa12bdddbbb 100644
35 --- a/app-misc/screen/screen-9999.ebuild
36 +++ b/app-misc/screen/screen-9999.ebuild
37 @@ -1,9 +1,9 @@
38 -# Copyright 1999-2019 Gentoo Authors
39 +# Copyright 1999-2020 Gentoo Authors
40 # Distributed under the terms of the GNU General Public License v2
41
42 -EAPI=6
43 +EAPI=7
44
45 -inherit autotools eutils flag-o-matic pam tmpfiles toolchain-funcs user
46 +inherit autotools flag-o-matic pam tmpfiles toolchain-funcs
47
48 DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
49 HOMEPAGE="https://www.gnu.org/software/screen/"
50 @@ -15,42 +15,40 @@ else
51 inherit git-r3
52 EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git"
53 EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
54 - S="${WORKDIR}"/${P}/src
55 + S="${WORKDIR}/${P}/src"
56 fi
57
58 LICENSE="GPL-2"
59 SLOT="0"
60 -IUSE="debug nethack pam selinux multiuser utmp"
61 +IUSE="debug nethack pam selinux multiuser"
62
63 CDEPEND="
64 >=sys-libs/ncurses-5.2:0=
65 pam? ( sys-libs/pam )"
66 RDEPEND="${CDEPEND}
67 - selinux? ( sec-policy/selinux-screen )
68 - utmp? (
69 - kernel_linux? ( sys-libs/libutempter )
70 - kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-lib-9.0 sys-libs/libutempter ) )
71 - )
72 -"
73 + acct-group/utmp
74 + selinux? ( sec-policy/selinux-screen )"
75 DEPEND="${CDEPEND}
76 sys-apps/texinfo"
77
78 -RESTRICT="test"
79 -
80 -pkg_setup() {
81 - # Make sure utmp group exists, as it's used later on.
82 - enewgroup utmp 406
83 -}
84 +PATCHES=(
85 + # Don't use utempter even if it is found on the system.
86 + "${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
87 + "${FILESDIR}"/${PN}-4.6.2-utmp-exit.patch
88 +)
89
90 src_prepare() {
91 - default
92 + if [[ "${PV}" != *9999 ]] ; then
93 + default
94 + else
95 + eapply_user
96 + fi
97
98 # sched.h is a system header and causes problems with some C libraries
99 mv sched.h _sched.h || die
100 - sed -i \
101 - -e '/include/ s:sched.h:_sched.h:' \
102 - screen.h winmsg.c canvas.h sched.c || die
103 - sed -i -e 's:sched.h:_sched.h:g' Makefile.in || die
104 + sed -i '/include/ s:sched\.h:_sched.h:' \
105 + screen.h winmsg.c window.h sched.c canvas.h || die
106 + sed -i 's@[[:space:]]sched\.h@ _sched.h@' Makefile.in || die
107
108 # Fix manpage.
109 sed -i \
110 @@ -58,10 +56,15 @@ src_prepare() {
111 -e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
112 -e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
113 -e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
114 - -e 's:/local/screens/S\\-:'"${EPREFIX}"'/tmp/screen/S\\-:g' \
115 - -e 's:/usr/tmp/screens/:'"${EPREFIX}"'/tmp/screen/:g' \
116 - doc/screen.1 \
117 - || die
118 + -e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
119 + doc/screen.1 || die
120 +
121 + if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
122 + sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
123 + fi
124 +
125 + # disable musl dummy headers for utmp[x]
126 + use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
127
128 # reconfigure
129 eautoreconf
130 @@ -70,19 +73,24 @@ src_prepare() {
131 src_configure() {
132 append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
133
134 - [[ ${CHOST} == *-solaris* ]] && append-libs -lsocket -lnsl
135 + if [[ ${CHOST} == *-solaris* ]] ; then
136 + # enable msg_header by upping the feature standard compatible
137 + # with c99 mode
138 + append-cppflags -D_XOPEN_SOURCE=600
139 + fi
140
141 use nethack || append-cppflags "-DNONETHACK"
142 use debug && append-cppflags "-DDEBUG"
143
144 - econf \
145 - --enable-socket-dir="${EPREFIX}/tmp/screen" \
146 - --with-system_screenrc="${EPREFIX}/etc/screenrc" \
147 - --with-pty-mode=0620 \
148 - --with-pty-group=5 \
149 - --enable-telnet \
150 - $(use_enable pam) \
151 - $(use_enable utmp)
152 + local myeconfargs=(
153 + --enable-socket-dir="${EPREFIX}/tmp/${PN}"
154 + --with-system_screenrc="${EPREFIX}/etc/screenrc"
155 + --with-pty-mode=0620
156 + --with-pty-group=5
157 + --enable-telnet
158 + $(use_enable pam)
159 + )
160 + econf "${myeconfargs[@]}"
161 }
162
163 src_compile() {
164 @@ -98,25 +106,24 @@ src_install() {
165 doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
166 )
167
168 - emake DESTDIR="${D}" SCREEN=screen-${PV} install
169 + emake DESTDIR="${D}" SCREEN="${P}" install
170
171 local tmpfiles_perms tmpfiles_group
172
173 - if use multiuser || use prefix
174 - then
175 - fperms 4755 /usr/bin/screen-${PV}
176 + if use multiuser || use prefix ; then
177 + fperms 4755 /usr/bin/${P}
178 tmpfiles_perms="0755"
179 tmpfiles_group="root"
180 else
181 - fowners root:utmp /usr/bin/screen-${PV}
182 - fperms 2755 /usr/bin/screen-${PV}
183 + fowners root:utmp /usr/bin/${P}
184 + fperms 2755 /usr/bin/${P}
185 tmpfiles_perms="0775"
186 tmpfiles_group="utmp"
187 fi
188
189 newtmpfiles - screen.conf <<<"d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}"
190
191 - insinto /usr/share/screen
192 + insinto /usr/share/${PN}
193 doins terminfo/{screencap,screeninfo.src}
194
195 insinto /etc
196 @@ -137,7 +144,7 @@ pkg_postinst() {
197
198 # Add /tmp/screen in case it doesn't exist yet. This should solve
199 # problems like bug #508634 where tmpfiles.d isn't in effect.
200 - local rundir="${EROOT%/}/tmp/screen"
201 + local rundir="${EROOT}/tmp/${PN}"
202 if [[ ! -d ${rundir} ]] ; then
203 if use multiuser || use prefix ; then
204 tmpfiles_group="root"