Gentoo Archives: gentoo-commits

From: Sebastian Pipping <sping@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-misc/xscreensaver/files/, x11-misc/xscreensaver/
Date: Mon, 14 Jun 2021 00:53:26
Message-Id: 1623631843.57a31e4b1f4d63318c13dc98cb9dfa8d5e3e5594.sping@gentoo
1 commit: 57a31e4b1f4d63318c13dc98cb9dfa8d5e3e5594
2 Author: Sebastian Pipping <sping <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jun 14 00:42:55 2021 +0000
4 Commit: Sebastian Pipping <sping <AT> gentoo <DOT> org>
5 CommitDate: Mon Jun 14 00:50:43 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57a31e4b
7
8 x11-misc/xscreensaver: 6.01
9
10 Thanks to José María Fernández González for his help!
11 Closes: https://bugs.gentoo.org/788865
12 Signed-off-by: Sebastian Pipping <sping <AT> gentoo.org>
13 Package-Manager: Portage-3.0.19, Repoman-3.0.3
14
15 x11-misc/xscreensaver/Manifest | 1 +
16 .../xscreensaver-6.01-configure.ac-sandbox.patch | 120 +++++++++++++
17 .../files/xscreensaver-6.01-gentoo.patch | 47 +++++
18 .../files/xscreensaver-6.01-interix.patch | 30 ++++
19 x11-misc/xscreensaver/metadata.xml | 1 +
20 x11-misc/xscreensaver/xscreensaver-6.01.ebuild | 198 +++++++++++++++++++++
21 6 files changed, 397 insertions(+)
22
23 diff --git a/x11-misc/xscreensaver/Manifest b/x11-misc/xscreensaver/Manifest
24 index 2a8cc3823af..237089b7aff 100644
25 --- a/x11-misc/xscreensaver/Manifest
26 +++ b/x11-misc/xscreensaver/Manifest
27 @@ -1 +1,2 @@
28 DIST xscreensaver-5.45.tar.gz 27729147 BLAKE2B 132301dd6645a21e04cd6f8b2f85e4b2454f5281e8cca3c5a89d50e16fee7f7e79d0b323e639bf7a18ddbcae0b4c8e7e5c9a84409bfe9f57253062cdaab30880 SHA512 1b21418c591fd99f3caaea9d31ca49abdb94b8e89f33e661c464299bc81bf4ff13fd99a187070fce19b3843c28a1f2a2a7b94bd6949d2b3b06bba730cae59f14
29 +DIST xscreensaver-6.01.tar.gz 27820165 BLAKE2B b2c90b47fb65db79d2473c1e396717156e414a0200672971adadf5729056ad9210822955a71f1a098e2142c00c5e60b24aababf9431903f96ff76e8c2d474052 SHA512 3a6e875196e1340909b2a379c25e758fef490d3d10154aef3096ec1be50fabe0d852de806d45a067eefd061381c8541acd7902d28be3bac15b76bd9d4bf0c02a
30
31 diff --git a/x11-misc/xscreensaver/files/xscreensaver-6.01-configure.ac-sandbox.patch b/x11-misc/xscreensaver/files/xscreensaver-6.01-configure.ac-sandbox.patch
32 new file mode 100644
33 index 00000000000..fe56f927e20
34 --- /dev/null
35 +++ b/x11-misc/xscreensaver/files/xscreensaver-6.01-configure.ac-sandbox.patch
36 @@ -0,0 +1,120 @@
37 +From 0f4d029102c651ccbc69860bf222126d2c58e36e Mon Sep 17 00:00:00 2001
38 +From: Sebastian Pipping <sebastian@×××××××.org>
39 +Date: Sun, 13 Jun 2021 23:41:42 +0200
40 +Subject: [PATCH] configure.ac: Stop asking rpm and dpkg things, we're on
41 + Gentoo
42 +
43 +---
44 + configure.ac | 96 ----------------------------------------------------
45 + 1 file changed, 96 deletions(-)
46 +
47 +diff --git a/configure.ac b/configure.ac
48 +index 9b8641e..2eaea28 100644
49 +--- a/configure.ac
50 ++++ b/configure.ac
51 +@@ -4833,102 +4833,6 @@ for bad_choice in xscreensaver xscreensaver-settings xscreensaver-command ; do
52 + done
53 +
54 +
55 +-# Warn if there's a previous RPM package installed.
56 +-
57 +-rpm_vers=
58 +-if test -z "$RPM_PACKAGE_VERSION" ; then
59 +- # Don't bother with this test if we are currently *building* an RPM.
60 +- rpmnames="xscreensaver xscreensaver-base xscreensaver-extras
61 +- xscreensaver-data xscreensaver-data-extra"
62 +-
63 +- # M4 sucks!!
64 +- changequote(X,Y)
65 +- pkg_vers=`(rpm -qv $rpmnames) 2>&- | \
66 +- sed -n 's/^[-a-z]*-\([0-9][0-9]*[.].*\)/\1/p' | head -1`
67 +- rpm_vers="$pkg_vers"
68 +- changequote([,])
69 +-fi
70 +-
71 +-if test \! -z "$rpm_vers" ; then
72 +-
73 +- # M4 sucks!!
74 +- changequote(A,B)
75 +- pkg_bindir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)xscreensaver-settings$@\1@p'`
76 +- pkg_bindir2=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)xscreensaver-demo$@\1@p'`
77 +- pkg_hackdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)popsquares$@\1@p'`
78 +- pkg_confdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)popsquares\.xml$@\1@p'`
79 +- pkg_fontdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\).*\.ttf$@\1@p' | head -1`
80 +- pkg_addir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)XScreenSaver$@\1@p'`
81 +-
82 +- if test -z "$pkg_bindir" ; then pkg_bindir="$pkg_bindir2" ; fi
83 +- changequote([,])
84 +-fi
85 +-
86 +-
87 +-# Warn if there's a previous Debian package installed.
88 +-#
89 +-deb_vers=
90 +-if test -z "$pkg_vers" ; then
91 +- debnames="xscreensaver xscreensaver-data xscreensaver-data-extra"
92 +- pkg_vers=''
93 +- for dpkg in $debnames ; do
94 +- if test -z "$pkg_vers"; then
95 +- pkg_vers=`dpkg -s $dpkg 2>/dev/null | sed -n 's/^Version: \(.*\)$/\1/p'`
96 +- deb_vers="$pkg_vers"
97 +- fi
98 +- done
99 +-fi
100 +-
101 +-if test \! -z "$deb_vers" ; then
102 +-
103 +- # M4 sucks!!
104 +- changequote(A,B)
105 +- pkg_bindir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)xscreensaver-settings$@\1@p'`
106 +- pkg_bindir2=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)xscreensaver-demo$@\1@p'`
107 +- pkg_hackdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)popsquares$@\1@p'`
108 +- pkg_confdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)popsquares\.xml$@\1@p'`
109 +- pkg_fontdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\).*\.ttf$@\1@p' | head -1`
110 +- pkg_addir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)XScreenSaver[^/]*$@\1@p'`
111 +- changequote([,])
112 +-
113 +- if test -z "$pkg_bindir" ; then pkg_bindir="$pkg_bindir2" ; fi
114 +-fi
115 +-
116 +-bindir_err=
117 +-hackdir_err=
118 +-confdir_err=
119 +-fontdir_err=
120 +-addir_err=
121 +-if ! test -z "$pkg_vers" ; then
122 +-
123 +- err=" (DIFFERS)"
124 +-
125 +- if test -z "$pkg_bindir" ; then pkg_bindir='???'
126 +- elif test "$pkg_bindir" != "${bindir}/" ; then bindir_err="$err" ; fi
127 +-
128 +- if test -z "$pkg_hackdir" ; then pkg_hackdir='???'
129 +- elif test "$pkg_hackdir" != "${HACKDIR}/" ; then hackdir_err="$err"; fi
130 +-
131 +- if test -z "$pkg_confdir" ; then pkg_confdir='???'
132 +- elif test "$pkg_confdir" != "${HACK_CONF_DIR}/" ; then confdir_err="$err"; fi
133 +-
134 +- if test -z "$pkg_fontdir" ; then pkg_fontdir='none'
135 +- elif test "$pkg_fontdir/" != "${FONT_DIR}" ; then fontdir_err="$err"; fi
136 +-
137 +- if test -z "$pkg_addir" ; then pkg_addir='???'
138 +- elif test "$pkg_addir" != "${APPDEFAULTS}/" ; then addir_err="$err" ; fi
139 +-
140 +- warning=no
141 +- warnL "There is already an installed package of xscreensaver"
142 +- warn2 "version \"$pkg_vers\", in these directories:"
143 +- echo ""
144 +- warn2 "User programs: $pkg_bindir$bindir_err"
145 +- warn2 "Screen savers: $pkg_hackdir$hackdir_err"
146 +- warn2 "Configuration: $pkg_confdir$confdir_err"
147 +- warn2 "Extra fonts: $pkg_fontdir$fontdir_err"
148 +- warn2 "App Defaults: $pkg_addir$addir_err"
149 +-fi
150 +-
151 + echo ""
152 + echo "$warnsep"
153 + echo ""
154 +--
155 +2.31.1
156 +
157
158 diff --git a/x11-misc/xscreensaver/files/xscreensaver-6.01-gentoo.patch b/x11-misc/xscreensaver/files/xscreensaver-6.01-gentoo.patch
159 new file mode 100644
160 index 00000000000..41f8d7b7d08
161 --- /dev/null
162 +++ b/x11-misc/xscreensaver/files/xscreensaver-6.01-gentoo.patch
163 @@ -0,0 +1,47 @@
164 +--- a/driver/XScreenSaver.ad.in
165 ++++ b/driver/XScreenSaver.ad.in
166 +@@ -31,21 +31,21 @@
167 + *mode: random
168 + *timeout: 0:10:00
169 + *cycle: 0:10:00
170 +-*lockTimeout: 0:00:00
171 ++*lockTimeout: 0:30:00
172 + *passwdTimeout: 0:00:30
173 +-*dpmsEnabled: False
174 ++*dpmsEnabled: True
175 + *dpmsQuickoffEnabled: False
176 + *dpmsStandby: 2:00:00
177 + *dpmsSuspend: 2:00:00
178 + *dpmsOff: 4:00:00
179 +-*grabDesktopImages: True
180 ++*grabDesktopImages: False
181 + *grabVideoFrames: False
182 + *chooseRandomImages: @DEFAULT_IMAGES_P@
183 + ! This can be a local directory name, or the URL of an RSS or Atom feed.
184 + *imageDirectory: @DEFAULT_IMAGE_DIRECTORY@
185 + *nice: 10
186 + *memoryLimit: 0
187 +-*lock: False
188 ++*lock: True
189 + *verbose: False
190 + *fade: True
191 + *unfade: True
192 +@@ -62,7 +62,7 @@
193 + *textLiteral: XScreenSaver
194 + *textFile: @DEFAULT_TEXT_FILE@
195 + *textProgram: fortune
196 +-*textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss
197 ++*textURL: https://planet.gentoo.org/rss20.xml
198 +
199 + ! This is what the "Settings" button on the splash screen runs.
200 + *demoCommand: xscreensaver-settings
201 +@@ -103,7 +103,8 @@
202 +
203 +
204 + ! The strftime(3) format string for printing the time on the password dialog.
205 +-*dateFormat: %I:%M %p, %a %b %e
206 ++!*dateFormat: %I:%M %p, %a %b %e
207 ++*dateFormat: %x %X
208 + ! DD MMM:
209 + ! *dateFormat: %I:%M %p, %e %b (%a)
210 + ! 12 hour time only:
211
212 diff --git a/x11-misc/xscreensaver/files/xscreensaver-6.01-interix.patch b/x11-misc/xscreensaver/files/xscreensaver-6.01-interix.patch
213 new file mode 100644
214 index 00000000000..72aa6535f13
215 --- /dev/null
216 +++ b/x11-misc/xscreensaver/files/xscreensaver-6.01-interix.patch
217 @@ -0,0 +1,30 @@
218 +diff -Nru a/driver/prefsw.c b/driver/prefsw.c
219 +--- a/driver/prefsw.c 2021-02-19 02:52:32.000000000 +0100
220 ++++ b/driver/prefsw.c 2021-05-07 15:20:09.280321274 +0200
221 +@@ -798,7 +798,10 @@
222 + sure that the bits actually land on the disk right away. */
223 + /* Update 2020: Apparently here in the future, this sometimes takes
224 + 3+ seconds, so let's not. */
225 ++/* Interix has no sync() or alike. */
226 ++#ifndef __INTERIX
227 + /* sync(); */
228 ++#endif
229 +
230 + status = 0; /* wrote and renamed successfully! */
231 + }
232 +diff -Nru a/driver/setuid.c b/driver/setuid.c
233 +--- a/driver/setuid.c 2021-02-05 16:16:23.000000000 +0100
234 ++++ b/driver/setuid.c 2021-05-07 15:21:05.987949943 +0200
235 +@@ -104,9 +104,12 @@
236 + if (uid == (uid_t) -1) uid = (uid_t) -2;
237 +
238 + errno = 0;
239 ++
240 ++#ifndef __INTERIX
241 + if (setgroups_needed_p (gid) &&
242 + setgroups (1, &gid) < 0)
243 + sgs_errno = errno ? errno : -1;
244 ++#endif
245 +
246 + errno = 0;
247 + if (setgid (gid) != 0)
248
249 diff --git a/x11-misc/xscreensaver/metadata.xml b/x11-misc/xscreensaver/metadata.xml
250 index 8893ad3c39c..31e771cd6ac 100644
251 --- a/x11-misc/xscreensaver/metadata.xml
252 +++ b/x11-misc/xscreensaver/metadata.xml
253 @@ -9,6 +9,7 @@
254 </maintainer>
255 </upstream>
256 <use>
257 + <flag name="fonts">Install the fonts shipped with XScreenSaver that have clear licensing</flag>
258 <flag name="gdk-pixbuf">Include support for the <pkg>x11-libs/gdk-pixbuf</pkg> library in some demos, which will make it possible for them to read GIF, JPEG, and PNG files as well</flag>
259 <flag name="gdm">Use gdmflexiserver from <pkg>gnome-base/gdm</pkg> instead of <pkg>x11-misc/lightdm</pkg></flag>
260 <flag name="locking">Compile in support for locking the display</flag>
261
262 diff --git a/x11-misc/xscreensaver/xscreensaver-6.01.ebuild b/x11-misc/xscreensaver/xscreensaver-6.01.ebuild
263 new file mode 100644
264 index 00000000000..98a77ac0e73
265 --- /dev/null
266 +++ b/x11-misc/xscreensaver/xscreensaver-6.01.ebuild
267 @@ -0,0 +1,198 @@
268 +# Copyright 1999-2021 Gentoo Authors
269 +# Distributed under the terms of the GNU General Public License v2
270 +
271 +EAPI=7
272 +inherit autotools flag-o-matic font multilib optfeature pam
273 +
274 +DESCRIPTION="modular screen saver and locker for the X Window System"
275 +HOMEPAGE="https://www.jwz.org/xscreensaver/"
276 +SRC_URI="https://www.jwz.org/xscreensaver/${P}.tar.gz"
277 +
278 +# Font license mapping for folder ./hacks/fonts/ as following:
279 +# clacon.ttf -- MIT
280 +# gallant12x22.ttf -- unclear, hence dropped
281 +# luximr.ttf -- bh-luxi (package media-fonts/font-bh-ttf)
282 +# OCRAStd.otf -- unclear, hence dropped
283 +# SpecialElite.ttf -- Apache-2.0
284 +LICENSE="BSD fonts? ( MIT Apache-2.0 )"
285 +SLOT="0"
286 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
287 +IUSE="elogind fonts +gdk-pixbuf gdm +gtk jpeg +locking new-login offensive opengl pam +perl selinux suid systemd xinerama"
288 +REQUIRED_USE="
289 + gdk-pixbuf? ( gtk )
290 + elogind? ( !systemd )
291 +"
292 +
293 +COMMON_DEPEND="
294 + dev-libs/libxml2
295 + media-libs/netpbm
296 + x11-apps/appres
297 + x11-apps/xwininfo
298 + x11-libs/libX11
299 + x11-libs/libXext
300 + x11-libs/libXft
301 + x11-libs/libXi
302 + x11-libs/libXmu
303 + x11-libs/libXrandr
304 + x11-libs/libXt
305 + x11-libs/libXxf86vm
306 + elogind? ( sys-auth/elogind )
307 + gdk-pixbuf? (
308 + x11-libs/gdk-pixbuf-xlib
309 + >=x11-libs/gdk-pixbuf-2.42.0:2
310 + )
311 + gtk? ( x11-libs/gtk+:2 )
312 + jpeg? ( virtual/jpeg:0 )
313 + new-login? (
314 + gdm? ( gnome-base/gdm )
315 + !gdm? ( || ( x11-misc/lightdm lxde-base/lxdm ) )
316 + )
317 + opengl? (
318 + virtual/glu
319 + virtual/opengl
320 + )
321 + pam? ( sys-libs/pam )
322 + systemd? ( >=sys-apps/systemd-221 )
323 + xinerama? ( x11-libs/libXinerama )
324 +"
325 +# For USE="perl" see output of `qlist xscreensaver | grep bin | xargs grep '::'`
326 +RDEPEND="
327 + ${COMMON_DEPEND}
328 + media-gfx/fbida
329 + perl? (
330 + dev-lang/perl
331 + dev-perl/libwww-perl
332 + virtual/perl-Digest-MD5
333 + )
334 + selinux? ( sec-policy/selinux-xscreensaver )
335 +"
336 +DEPEND="
337 + ${COMMON_DEPEND}
338 + dev-util/intltool
339 + sys-devel/bc
340 + sys-devel/gettext
341 + virtual/pkgconfig
342 + x11-base/xorg-proto
343 +"
344 +PATCHES=(
345 + "${FILESDIR}"/${PN}-6.01-interix.patch
346 + "${FILESDIR}"/${PN}-5.31-pragma.patch
347 + "${FILESDIR}"/${PN}-6.01-gentoo.patch
348 + "${FILESDIR}"/${PN}-5.45-gcc.patch
349 + "${FILESDIR}"/${PN}-6.01-configure.ac-sandbox.patch
350 +)
351 +
352 +src_prepare() {
353 + sed -i configure.ac -e '/^ALL_LINGUAS=/d' || die
354 + strip-linguas -i po/
355 + export ALL_LINGUAS="${LINGUAS}"
356 +
357 + if use new-login && ! use gdm; then #392967
358 + sed -i \
359 + -e "/default_l.*1/s:gdmflexiserver -ls:${EPREFIX}/usr/libexec/lightdm/&:" \
360 + configure{,.ac} || die
361 + fi
362 +
363 + default
364 +
365 + # We are patching driver/XScreenSaver.ad.in, so let's delete the
366 + # header generated from it so that it gets back in sync during build:
367 + rm driver/XScreenSaver_ad.h || die
368 +
369 + if ! use offensive; then
370 + sed -i \
371 + -e '/boobies/d;/boobs/d;/cock/d;/pussy/d;/viagra/d;/vibrator/d' \
372 + hacks/barcode.c || die
373 + sed -i \
374 + -e 's|erect penis|shuffle board|g' \
375 + -e 's|flaccid penis|flaccid anchor|g' \
376 + -e 's|vagina|engagement ring|g' \
377 + -e 's|Penis|Shuttle|g' \
378 + hacks/glx/glsnake.c || die
379 + sed -i \
380 + 's| Stay.*fucking mask\.$||' \
381 + hacks/glx/covid19.man \
382 + hacks/config/covid19.xml || die
383 + fi
384 +
385 + eapply_user
386 +
387 + eautoconf
388 + eautoheader
389 +}
390 +
391 +src_configure() {
392 + if use ppc || use ppc64; then
393 + filter-flags -maltivec -mabi=altivec
394 + append-flags -U__VEC__
395 + fi
396 +
397 + unset BC_ENV_ARGS #24568
398 +
399 + econf \
400 + $(use_enable locking) \
401 + $(use_with elogind) \
402 + $(use_with gdk-pixbuf pixbuf) \
403 + $(use_with gtk) \
404 + $(use_with jpeg) \
405 + $(use_with new-login login-manager) \
406 + $(use_with opengl gl) \
407 + $(use_with pam) \
408 + $(use_with suid setuid-hacks) \
409 + $(use_with systemd) \
410 + $(use_with xinerama xinerama-ext) \
411 + --with-app-defaults="${EPREFIX}"/usr/share/X11/app-defaults \
412 + --with-configdir="${EPREFIX}"/usr/share/${PN}/config \
413 + --with-dpms-ext \
414 + --with-hackdir="${EPREFIX}"/usr/$(get_libdir)/misc/${PN} \
415 + --with-proc-interrupts \
416 + --with-randr-ext \
417 + --with-text-file="${EPREFIX}"/etc/gentoo-release \
418 + --with-xdbe-ext \
419 + --with-xf86gamma-ext \
420 + --with-xf86vmode-ext \
421 + --with-xinput-ext \
422 + --with-xshm-ext \
423 + --without-gle \
424 + --without-kerberos \
425 + --without-motif \
426 + --x-includes="${EPREFIX}"/usr/include \
427 + --x-libraries="${EPREFIX}"/usr/$(get_libdir)
428 +}
429 +
430 +src_install() {
431 + emake install_prefix="${D}" install
432 +
433 + if use fonts; then
434 + # Do not install fonts with unclear licensing
435 + rm -v "${ED}${FONTDIR}"/{gallant12x22.ttf,OCRAStd.otf} || die
436 +
437 + # Do not duplicate font Luxi Mono (of package media-fonts/font-bh-ttf)
438 + rm -v "${ED}${FONTDIR}"/luximr.ttf || die
439 +
440 + font_xfont_config
441 + else
442 + rm -v "${ED}${FONTDIR}"/*.{ttf,otf} || die
443 + fi
444 +
445 + dodoc README{,.hacking}
446 +
447 + if use pam; then
448 + fperms 755 /usr/bin/${PN}
449 + pamd_mimic_system ${PN} auth
450 + fi
451 +
452 + rm -f "${ED}"/usr/share/${PN}/config/{electricsheep,fireflies}.xml
453 +}
454 +
455 +pkg_postinst() {
456 + use fonts && font_pkg_postinst
457 +
458 + optfeature 'Bitmap fonts 75dpi' media-fonts/font-adobe-75dpi
459 + optfeature 'Bitmap fonts 100dpi' media-fonts/font-adobe-100dpi
460 + optfeature 'Truetype font Luxi Mono' media-fonts/font-bh-ttf
461 +}
462 +
463 +pkg_postrm() {
464 + use fonts && font_pkg_postrm
465 +}