From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id E59DC1581B9 for ; Thu, 25 Sep 2025 18:12:47 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id D0AC8340F85 for ; Thu, 25 Sep 2025 18:12:47 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id C5E0E110573; Thu, 25 Sep 2025 18:12:46 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id BC260110573 for ; Thu, 25 Sep 2025 18:12:46 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 67327340F85 for ; Thu, 25 Sep 2025 18:12:46 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id CA6D13549 for ; Thu, 25 Sep 2025 18:12:44 +0000 (UTC) From: "Florian Schmaus" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Florian Schmaus" Message-ID: <1758823855.94a647a8f8cfd669c5272e1cfd00a48253412b32.flow@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: x11-misc/xscreensaver/ X-VCS-Repository: repo/gentoo X-VCS-Files: x11-misc/xscreensaver/metadata.xml x11-misc/xscreensaver/xscreensaver-6.12-r2.ebuild X-VCS-Directories: x11-misc/xscreensaver/ X-VCS-Committer: flow X-VCS-Committer-Name: Florian Schmaus X-VCS-Revision: 94a647a8f8cfd669c5272e1cfd00a48253412b32 X-VCS-Branch: master Date: Thu, 25 Sep 2025 18:12:44 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 8b8a8c26-10e1-4fcd-a519-04411c774336 X-Archives-Hash: 5a446d1e5edc06132c91d30029435cea commit: 94a647a8f8cfd669c5272e1cfd00a48253412b32 Author: Alexander Golubev gmail com> AuthorDate: Wed Aug 13 10:49:05 2025 +0000 Commit: Florian Schmaus gentoo org> CommitDate: Thu Sep 25 18:10:55 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94a647a8 x11-misc/xscreensaver: make deps on gdk-pixbuf, png and gtk optional * add previously dropped USE="gdk-pixbuf png gtk". It was verified that package builds fine and usable without those (individually or all together) and none of the dependencies are getting enabled automagically. All possible functionality loss is documented via greadme. Note that RESTRICTED_USE for gtk were not transfered from the old versions because it was verified that package builds and runs fine without them. * document with greadme issue with USE=-jpeg reported by ./configure * add a couple more perl dependencies found in scripts * move media-gfx/fbida to optfeatures and elaborate on alternatives and other dependencies: - it's only one screensaver (vidwhacker) that depends on media-gfx/fbida and now it orderly fails to start rather than unexpectedly segfault as it was in #790599 times - as an alternative to media-gfx/fbida it is possible to use imagemagick's convert, which is much more common - besides media-gfx/fbida it requires media-libs/netpbm (which is not a very common package either) and a tool from libjpeg. * minor cleanup Closes: https://bugs.gentoo.org/961204 Signed-off-by: Alexander Golubev gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/43429 Closes: https://github.com/gentoo/gentoo/pull/43429 Signed-off-by: Florian Schmaus gentoo.org> x11-misc/xscreensaver/metadata.xml | 1 + x11-misc/xscreensaver/xscreensaver-6.12-r2.ebuild | 366 ++++++++++++++++++++++ 2 files changed, 367 insertions(+) diff --git a/x11-misc/xscreensaver/metadata.xml b/x11-misc/xscreensaver/metadata.xml index 68803a1d6b15..cd4663b50a0b 100644 --- a/x11-misc/xscreensaver/metadata.xml +++ b/x11-misc/xscreensaver/metadata.xml @@ -17,6 +17,7 @@ Install the fonts shipped with XScreenSaver that have clear licensing + Add ability for screensavers to read images in formats supported by x11-libs/gdk-pixbuf Use gdmflexiserver from gnome-base/gdm instead of x11-misc/lightdm Emulate OpenGL 1.3 in terms of OpenGL ES 1.x Use GLX to interface OpenGL and X11 instead of EGL diff --git a/x11-misc/xscreensaver/xscreensaver-6.12-r2.ebuild b/x11-misc/xscreensaver/xscreensaver-6.12-r2.ebuild new file mode 100644 index 000000000000..37e2fb8cdfb5 --- /dev/null +++ b/x11-misc/xscreensaver/xscreensaver-6.12-r2.ebuild @@ -0,0 +1,366 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic font greadme optfeature pam strip-linguas systemd xdg-utils + +DESCRIPTION="Modular screen saver and locker for the X Window System" +HOMEPAGE="https://www.jwz.org/xscreensaver/" +SRC_URI=" + https://www.jwz.org/xscreensaver/${P}.tar.gz + logind-idle-hint? ( + https://github.com/Flowdalic/xscreensaver/commit/e79e2f41be3367c196899ef2f38ab97436fa1a65.patch -> + ${PN}-6.12-logind-idle-hint.patch + ) + systemd? ( + https://github.com/Flowdalic/xscreensaver/commit/376b07ec76cfe1070f498773aaec8fd7030593af.patch -> + ${PN}-6.07-xscreensaver.service-start-with-no-splash.patch + ) +" + +S="${WORKDIR}/${PN}-$(ver_cut 1-2)" +# Font license mapping for folder ./hacks/fonts/ as following: +# clacon.ttf -- MIT +# gallant12x22.ttf -- unclear, hence dropped +# luximr.ttf -- bh-luxi (package media-fonts/font-bh-ttf) +# OCRAStd.otf -- unclear, hence dropped +# SpecialElite.ttf -- Apache-2.0 +LICENSE="BSD fonts? ( MIT Apache-2.0 ) systemd? ( ISC )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="elogind ffmpeg fonts +gdk-pixbuf gdm gles glx +gtk jpeg +locking logind-idle-hint new-login offensive pam +perl +png selinux suid systemd xinerama wayland" +REQUIRED_USE=" + gles? ( !glx ) + ?? ( elogind systemd ) + pam? ( locking ) + logind-idle-hint? ( || ( elogind systemd ) ) +" + +COMMON_DEPEND=" + >=dev-libs/libxml2-2.4.6:= + x11-apps/appres + x11-apps/xwininfo + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXt + x11-libs/libXxf86vm + elogind? ( sys-auth/elogind ) + gdk-pixbuf? ( >=x11-libs/gdk-pixbuf-2.42.0:2[jpeg?] ) + gtk? ( >=x11-libs/gtk+-3.0.0:3 ) + ffmpeg? ( media-video/ffmpeg:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + locking? ( virtual/libcrypt:= ) + new-login? ( + gdm? ( gnome-base/gdm ) + !gdm? ( || ( x11-misc/lightdm lxde-base/lxdm ) ) + ) + virtual/glu + virtual/opengl + pam? ( sys-libs/pam ) + png? ( media-libs/libpng:= ) + systemd? ( >=sys-apps/systemd-221:= ) + >=x11-libs/libXft-2.1.0 + xinerama? ( x11-libs/libXinerama ) + wayland? ( >=dev-libs/wayland-1.8 ) +" +# For USE="perl" see output of `qlist xscreensaver | grep '\(bin\|misc\)' | xargs grep '::'` +RDEPEND=" + ${COMMON_DEPEND} + perl? ( + dev-lang/perl + dev-perl/HTML-Parser + dev-perl/LWP-Protocol-https + dev-perl/libwww-perl + ) + selinux? ( sec-policy/selinux-xscreensaver ) + wayland? ( gui-apps/grim ) +" +DEPEND=" + ${COMMON_DEPEND} + x11-base/xorg-proto +" +BDEPEND=" + dev-util/intltool + app-alternatives/bc + sys-devel/gettext + virtual/pkgconfig +" +PATCHES=( + "${FILESDIR}"/${PN}-5.31-pragma.patch + "${FILESDIR}"/${PN}-6.01-gentoo.patch + "${FILESDIR}"/${PN}-6.07-gcc.patch + "${FILESDIR}"/${PN}-6.01-configure.ac-sandbox.patch + "${FILESDIR}"/${PN}-6.01-without-gl-makefile.patch + "${FILESDIR}"/${PN}-6.01-non-gtk-install.patch + "${FILESDIR}"/${PN}-6.01-configure-install_sh.patch + "${FILESDIR}"/${PN}-6.03-without-gl-configure.patch + "${FILESDIR}"/${PN}-6.05-remove-update-icon-cache.patch + "${FILESDIR}"/${PN}-6.05-r2-configure-exit-codes.patch + "${FILESDIR}"/${PN}-6.07-allow-no-pam.patch + "${FILESDIR}"/${PN}-6.07-fix-desktop-files.patch + "${FILESDIR}"/${PN}-6.09-ffmpeg.patch +) + +DOCS=( README{,.hacking} ) + +# see https://bugs.gentoo.org/898328 +QA_CONFIG_IMPL_DECL_SKIP=( getspnam_shadow ) + +src_prepare() { + default + + # bug #896440 + mv po/ca.po po/ca.po.old || die + iconv -f ISO-8859-15 -t UTF-8 po/ca.po.old >po/ca.po || die + + sed -i configure.ac -e '/^ALL_LINGUAS=/d' || die + + if use systemd; then + # Causes "Failed to enable unit: Cannot alias xscreensaver.service as org.jwz.xscreensaver." + # after "systemctl --user enable xscreensaver". + sed -i -e '/^Alias=org.jwz.xscreensaver.service/d' \ + driver/xscreensaver.service.in || die + + eapply "${DISTDIR}/${PN}-6.07-xscreensaver.service-start-with-no-splash.patch" + fi + + strip-linguas -i po/ + export ALL_LINGUAS="${LINGUAS}" + + if use new-login && ! use gdm; then #392967 + sed -i \ + -e "/default_l.*1/s:gdmflexiserver -ls:${EPREFIX}/usr/libexec/lightdm/&:" \ + configure{,.ac} || die + fi + + # We are patching driver/XScreenSaver.ad.in, so let's delete the + # header generated from it so that it gets back in sync during build: + rm driver/XScreenSaver_ad.h || die + + if ! use offensive; then + sed -i \ + -e '/boobies/d;/boobs/d;/cock/d;/pussy/d;/viagra/d;/vibrator/d' \ + hacks/barcode.c || die + sed -i \ + -e 's|erect penis|shuffle board|g' \ + -e 's|flaccid penis|flaccid anchor|g' \ + -e 's|vagina|engagement ring|g' \ + -e 's|Penis|Shuttle|g' \ + hacks/glx/glsnake.c || die + sed -i \ + 's| Stay.*fucking mask\.$||' \ + hacks/glx/covid19.man \ + hacks/config/covid19.xml || die + sed -i \ + -e 's|Ass |Dumb |g' \ + -e 's|Buttcorn|Blue Corn|g' \ + -e 's| dick||gi' \ + -e 's| shit||g' \ + hacks/bsod.c || die + eapply "${FILESDIR}/xscreensaver-6.05-teach-handsy-some-manners.patch" + fi + + if use logind-idle-hint; then + eapply "${DISTDIR}/${PN}-6.12-logind-idle-hint.patch" + fi + + if use glx; then + sed -i -e 's;OpenGL/gl.h;GL/gl.h;' driver/subprocs.c || die + fi + + config_rpath_update "${S}"/config.rpath + + # Must be eauto*re*conf, to force the rebuild + eautoreconf +} + +src_configure() { + if use ppc || use ppc64; then + filter-flags -maltivec -mabi=altivec + append-flags -U__VEC__ + fi + + unset BC_ENV_ARGS #24568 + + # /proc/interrupts won't always have the keyboard bits needed + # Not clear this does anything in 6.03+(?) but let's keep it for now in case. + # (See also: configure argument) + export ac_cv_have_proc_interrupts=yes + + # WARNING: This is NOT a normal autoconf script + # Some of the --with options are NOT standard, and expect "--with-X=no" rather than "--without-X" + ECONF_OPTS=( + $(use_enable locking) + $(use_with elogind) + $(use_with gdk-pixbuf pixbuf) + $(use_with gles) + $(use_with glx) + $(use_with gtk) + $(use_with new-login login-manager) + $(use_with pam) + $(use_with suid setuid-hacks) + $(use_with systemd) + $(use_with xinerama xinerama-ext) + $(use_with wayland) + --with-jpeg=$(usex jpeg yes no) + --with-record-animation=$(usex ffmpeg yes no) + --with-png=$(usex png yes no) + --with-xft=yes + --with-app-defaults="${EPREFIX}"/usr/share/X11/app-defaults + --with-configdir="${EPREFIX}"/usr/share/${PN}/config + --with-dpms-ext + --with-hackdir="${EPREFIX}"/usr/$(get_libdir)/misc/${PN} + --with-proc-interrupts + --with-randr-ext + --with-text-file="${EPREFIX}"/etc/gentoo-release + --with-xdbe-ext + --with-xf86gamma-ext + --with-xf86vmode-ext + --with-xinput-ext + --with-xkb-ext + --with-xshm-ext + --without-gle + --without-kerberos + --without-motif + --with-proc-oom + --x-includes="${EPREFIX}"/usr/include + --x-libraries="${EPREFIX}"/usr/$(get_libdir) + ) + # WARNING: This is NOT a normal autoconf script + econf "${ECONF_OPTS[@]}" +} + +src_compile() { + # stock target is "default", which is broken in some releases. + emake all +} + +src_install() { + use pam && dodir /etc/pam.d/ + emake install_prefix="${D}" DESTDIR="${D}" GTK_SHAREDIR="${installprefix}"/usr/share/xscreensaver install + + if use fonts; then + # Do not install fonts with unclear licensing + rm -v "${ED}${FONTDIR}"/gallant12x22.ttf || die + + # Do not duplicate font Luxi Mono (of package media-fonts/font-bh-ttf) + rm -v "${ED}${FONTDIR}"/luximr.ttf || die + + font_xfont_config + else + rm -rfv "${ED}${FONTDIR}" || die #812473 + fi + + einstalldocs + + if use pam; then + fperms 755 /usr/bin/${PN} + pamd_mimic_system ${PN} auth + fi + + # bugs #809599, #828869 + if ! use gtk; then + rm "${ED}/usr/bin/xscreensaver-demo" || die + fi + + if use systemd; then + systemd_douserunit "${ED}/usr/share/${PN}/xscreensaver.service" + fi + # Makefile installs xscreensaver.service regardless of + # --without-systemd, and if USE=systemd, we will have installed the + # unit file already. + rm "${ED}/usr/share/${PN}/xscreensaver.service" || die + + # bug #885989 + fperms 4755 /usr/$(get_libdir)/misc/xscreensaver/xscreensaver-auth + + if ! { use png || use gdk-pixbuf; }; then + greadme_stdin --append <<-EOF + Xscreensaver was built without any means to support image manipulation + (i.e. with neither USE=gtk-pixbuf or USE=png. Several screensavers + will likely just fail to work without it and several others will + have diminished appearance like displaying a checkerboard pattern + instead of an image. It is strongly recommended to enable at least one + of those flags. + + EOF + elif ! use gdk-pixbuf; then + greadme_stdin --append <<-EOF + Xscreensaver was built with png support only. This means that most of + screensavers won't be able to use images in any other formats. It is + recommended to enable USE=gtk-pixbuf. + + EOF + fi + + if ! use jpeg; then + greadme_stdin --append <<-EOF + Xscreensaver was built without jpeg support. This mean that + 'webcollage' screensaver will be considerably slower. Enable + USE=jpeg if that will become an issue. + + EOF + fi + + if use gtk; then + greadme_stdin --append <<-EOF + You can configure xscreensaver via 'xscreensaver-settings'. + + EOF + else + greadme_stdin --append <<-EOF + Since xscreensaver had been built without USE=gtk + 'xscreensaver-settings' was not installed. Hence the only + way to configure it is via some third-party utilities or + directly via configuration file '~/.xscreensaver'. + + EOF + fi + + # bug #811885 + if ! use glx; then + greadme_stdin --append <<-EOF + Enable USE='glx' if OpenGL screensavers are crashing. + + EOF + fi + + if use wayland; then + greadme_stdin --append <<-EOF + WARNING: Wayland support is preliminary. It does not lock and you need + a supported compositor, like: + + * kde-plasma/kwin + * gui-wm/sway + * gui-wm/hyprland + * gui-wm/wayfire + * gui-wm/labwc + EOF + fi +} + +pkg_postinst() { + use fonts && font_pkg_postinst + + greadme_pkg_postinst + + optfeature_header 'Additional dependencies for specific screensavers' + optfeature 'vidwhacker' 'media-libs/netpbm[jpeg,png] virtual/imagemagick-tools' \ + 'media-libs/netpbm[jpeg,png] media-libs/libjpeg-turbo media-gfx/fbida' + optfeature 'webcollage' 'virtual/imagemagick-tools[jpeg,png] x11-apps/xdpyinfo' + + optfeature_header 'Fonts' + optfeature 'Bitmap fonts 75dpi' media-fonts/font-adobe-75dpi + optfeature 'Bitmap fonts 100dpi' media-fonts/font-adobe-100dpi + optfeature 'Truetype font Luxi Mono' media-fonts/font-bh-ttf + + xdg_icon_cache_update +} + +pkg_postrm() { + use fonts && font_pkg_postrm + xdg_icon_cache_update +}