commit:     e1151d3c7e9cebd14f2c8b071bf31e4737377808
Author:     Sebastian Pipping <sping <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 12 17:10:07 2021 +0000
Commit:     Sebastian Pipping <sping <AT> gentoo <DOT> org>
CommitDate: Fri Mar 12 17:13:52 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e1151d3c

x11-misc/xscreensaver: 5.45

Patches are forward-ports of existing ones
Adds systemd support, optfeature, and a few new so-called XScreenSaver "hacks"
Signed-off-by: Sebastian Pipping <sping <AT> gentoo.org>
Package-Manager: Portage-3.0.17, Repoman-3.0.2

 x11-misc/xscreensaver/Manifest                     |   1 +
 .../xscreensaver/files/xscreensaver-5.45-gcc.patch |  16 ++
 .../files/xscreensaver-5.45-interix.patch          |  32 ++++
 ...xscreensaver-5.45-remove-libXxf86misc-dep.patch |  49 ++++++
 x11-misc/xscreensaver/xscreensaver-5.45.ebuild     | 168 +++++++++++++++++++++
 5 files changed, 266 insertions(+)

diff --git a/x11-misc/xscreensaver/Manifest b/x11-misc/xscreensaver/Manifest
index 790b47cc1b7..9483460aca9 100644
--- a/x11-misc/xscreensaver/Manifest
+++ b/x11-misc/xscreensaver/Manifest
@@ -1,3 +1,4 @@
 DIST xscreensaver-5.38.tar.gz 10712548 BLAKE2B 
02630aa7daa3faf8aa7ff453218bed5e3db287b7c4d9b564a6d8822db8b2e1ae6be7843342d585f2d2900d2bd0e7fd2a12d49748d81bf10818fa5bc4254f6ef8
 SHA512 
9014571505afd3a116f541334ea37737659f63f4cbb267a56be451e2c353d9e57218119670a44297d36d140672ea423d0682433401b17749138ab6baf6507561
 DIST xscreensaver-5.43-r1.tar.gz 26973508 BLAKE2B 
67b57214e8a41ba895df6e9efcac3e712f24be06ee7914b38d3a8e639d4945c927c4ac28469d2180bc4a3999a4b89d2a60e633799ac5204c42fa17ad76dd21fc
 SHA512 
7ccaf30fb05ae2110f742f1a5c99f83cd4c8e6749124066b5a418cf3e0ba1b8ff09858eeec29c11b0c8ea428b95b2916481c50cee6a5d952ec941b3ad1b6adcd
 DIST xscreensaver-5.44.tar.gz 27001826 BLAKE2B 
102025aa2f57672ed3547f0e9bab989566fb8e50ecae8b9e4078ec5ee5de3cad09fec107695335ef236ad9fe19b2638978366a180a998d77b0ce8a2a5d1ebde3
 SHA512 
9d9144dec6f075c2d6a1c3cd45123a98d6d0cd732d6c3e3389e97b3f802b8f8765a188d1e35f97f123ca0a64661ea616b7b710577063c311da3d99d8439f1dae
+DIST xscreensaver-5.45.tar.gz 27729147 BLAKE2B 
132301dd6645a21e04cd6f8b2f85e4b2454f5281e8cca3c5a89d50e16fee7f7e79d0b323e639bf7a18ddbcae0b4c8e7e5c9a84409bfe9f57253062cdaab30880
 SHA512 
1b21418c591fd99f3caaea9d31ca49abdb94b8e89f33e661c464299bc81bf4ff13fd99a187070fce19b3843c28a1f2a2a7b94bd6949d2b3b06bba730cae59f14

diff --git a/x11-misc/xscreensaver/files/xscreensaver-5.45-gcc.patch 
b/x11-misc/xscreensaver/files/xscreensaver-5.45-gcc.patch
new file mode 100644
index 00000000000..b62fd1f309e
--- /dev/null
+++ b/x11-misc/xscreensaver/files/xscreensaver-5.45-gcc.patch
@@ -0,0 +1,16 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -468,11 +468,11 @@
+ 
+ AC_DEFUN([AC_CHECK_GCC_ARG],
+  [if test -n "$GCC"; then
+-   AC_CACHE_CHECK([whether gcc accepts [$2]],
++   AC_CACHE_CHECK([whether [$CC] accepts [$2]],
+      ac_cv_gcc_accepts_[$1],
+     [rm -rf conftest.$ac_ext
+      touch conftest.$ac_ext
+-     if ( ( gcc -c [$2] conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \
++     if ( ( $CC -c [$2] conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \
+           grep unrecognized >/dev/null ); then
+        ac_cv_gcc_accepts_[$1]=no
+      else

diff --git a/x11-misc/xscreensaver/files/xscreensaver-5.45-interix.patch 
b/x11-misc/xscreensaver/files/xscreensaver-5.45-interix.patch
new file mode 100644
index 00000000000..f9841a49b74
--- /dev/null
+++ b/x11-misc/xscreensaver/files/xscreensaver-5.45-interix.patch
@@ -0,0 +1,32 @@
+diff --git a/driver/prefs.c b/driver/prefs.c
+index ab97ffa..cc04cc9 100644
+--- a/driver/prefs.c
++++ b/driver/prefs.c
+@@ -969,7 +969,10 @@ write_init_file (Display *dpy,
+            sure that the bits actually land on the disk right away. */
+           /* Update 2020: Apparently here in the future, this sometimes takes
+              3+ seconds, so let's not. */
++/* Interix has no sync() or alike. */
++#ifndef __INTERIX
+         /* sync(); */
++#endif
+ 
+           status = 0;    /* wrote and renamed successfully! */
+       }
+diff --git a/driver/setuid.c b/driver/setuid.c
+index 3ac78e4..a2b9e15 100644
+--- a/driver/setuid.c
++++ b/driver/setuid.c
+@@ -136,9 +136,12 @@ set_ids_by_number (uid_t uid, gid_t gid, char 
**message_ret)
+   if (uid == (uid_t) -1) uid = (uid_t) -2;
+ 
+   errno = 0;
++
++#ifndef __INTERIX
+   if (setgroups_needed_p (gid) &&
+       setgroups (1, &gid) < 0)
+     sgs_errno = errno ? errno : -1;
++#endif
+ 
+   errno = 0;
+   if (setgid (gid) != 0)

diff --git 
a/x11-misc/xscreensaver/files/xscreensaver-5.45-remove-libXxf86misc-dep.patch 
b/x11-misc/xscreensaver/files/xscreensaver-5.45-remove-libXxf86misc-dep.patch
new file mode 100644
index 00000000000..9a2ac62036a
--- /dev/null
+++ 
b/x11-misc/xscreensaver/files/xscreensaver-5.45-remove-libXxf86misc-dep.patch
@@ -0,0 +1,49 @@
+libXxf86misc is the client-side code of an X extension that has not been
+supported by the Xserver in more than 10 years. Since xscreensaver's dependency
+on it is automagic, we have to patch configure.in to safely remove it.
+
+https://bugs.gentoo.org/720158
+
+diff -ruN xscreensaver.orig/configure.ac xscreensaver/configure.ac
+--- xscreensaver.orig/configure.ac     2020-05-02 18:09:23.169324761 -0700
++++ xscreensaver/configure.ac  2020-05-02 18:09:52.578233240 -0700
+@@ -104,12 +104,6 @@
+           (It's available if the file /usr/include/X11/extensions/XInput.h
+           exists.)])
+ 
+-AH_TEMPLATE([HAVE_XF86MISCSETGRABKEYSSTATE],
+-          [Define this if you have the XF86MiscSetGrabKeysState function
+-          (which allows the Ctrl-Alt-KP_star and Ctrl-Alt-KP_slash key
+-          sequences to be temporarily disabled.  Sadly, it doesn't affect
+-          Ctrl-Alt-BS or Ctrl-Alt-F1.)])
+-
+ AH_TEMPLATE([HAVE_RANDR],
+           [Define this if you have the Resize and Rotate extension.
+           This is standard on sufficiently-recent XFree86 systems, and
+@@ -1888,25 +1882,6 @@
+ fi
+ 
+ 
+-###############################################################################
+-#
+-#       Check for XF86MiscSetGrabKeysState (but only bother if we are already
+-#     using other XF86 stuff.)
+-#
+-###############################################################################
+-
+-have_xf86miscsetgrabkeysstate=no
+-if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
+-  AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
+-                [have_xf86miscsetgrabkeysstate=yes],
+-                [true], -lXext -lX11)
+-  if test "$have_xf86miscsetgrabkeysstate" = yes ; then
+-    SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
+-    AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
+-  fi
+-fi
+-
+-
+ 
###############################################################################
+ #
+ #       Check for HP XHPDisableReset and XHPEnableReset.
+

diff --git a/x11-misc/xscreensaver/xscreensaver-5.45.ebuild 
b/x11-misc/xscreensaver/xscreensaver-5.45.ebuild
new file mode 100644
index 00000000000..0cb931ea7de
--- /dev/null
+++ b/x11-misc/xscreensaver/xscreensaver-5.45.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools desktop eutils flag-o-matic multilib optfeature pam
+
+DESCRIPTION="A 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
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 
~amd64-linux ~x86-linux"
+IUSE="caps +gdk-pixbuf gdm +gtk jpeg +locking new-login offensive opengl pam 
+perl selinux suid systemd xinerama"
+REQUIRED_USE="
+       gdk-pixbuf? ( gtk )
+"
+
+COMMON_DEPEND="
+       >=gnome-base/libglade-2
+       dev-libs/libxml2
+       media-libs/netpbm
+       x11-apps/appres
+       x11-apps/xwininfo
+       x11-libs/libX11
+       x11-libs/libXext
+       x11-libs/libXft
+       x11-libs/libXi
+       x11-libs/libXmu
+       x11-libs/libXrandr
+       x11-libs/libXt
+       x11-libs/libXxf86vm
+       caps? ( sys-libs/libcap )
+       gdk-pixbuf? (
+               x11-libs/gdk-pixbuf-xlib
+               >=x11-libs/gdk-pixbuf-2.42.0:2
+       )
+       gtk? ( x11-libs/gtk+:2 )
+       jpeg? ( virtual/jpeg:0 )
+       new-login? (
+               gdm? ( gnome-base/gdm )
+               !gdm? ( || ( x11-misc/lightdm lxde-base/lxdm ) )
+               )
+       opengl? (
+               virtual/glu
+               virtual/opengl
+       )
+       pam? ( sys-libs/pam )
+       systemd? ( >=sys-apps/systemd-221 )
+       xinerama? ( x11-libs/libXinerama )
+"
+# For USE="perl" see output of `qlist xscreensaver | grep bin | xargs grep 
'::'`
+RDEPEND="
+       ${COMMON_DEPEND}
+       perl? (
+               dev-lang/perl
+               dev-perl/libwww-perl
+               virtual/perl-Digest-MD5
+       )
+       selinux? ( sec-policy/selinux-xscreensaver )
+"
+DEPEND="
+       ${COMMON_DEPEND}
+       dev-util/intltool
+       sys-devel/bc
+       sys-devel/gettext
+       virtual/pkgconfig
+       x11-base/xorg-proto
+"
+PATCHES=(
+       "${FILESDIR}"/${PN}-5.45-remove-libXxf86misc-dep.patch
+       "${FILESDIR}"/${PN}-5.45-interix.patch
+       "${FILESDIR}"/${PN}-5.31-pragma.patch
+       "${FILESDIR}"/${PN}-5.44-blurb-hndl-test-passwd.patch
+       "${FILESDIR}"/${PN}-5.44-gentoo.patch
+       "${FILESDIR}"/${PN}-5.45-gcc.patch
+)
+
+src_prepare() {
+       sed -i configure.ac -e '/^ALL_LINGUAS=/d' || die
+       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
+
+       default
+
+       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 || break
+       fi
+
+       eapply_user
+
+       eautoconf
+       eautoheader
+}
+
+src_configure() {
+       if use ppc || use ppc64; then
+               filter-flags -maltivec -mabi=altivec
+               append-flags -U__VEC__
+       fi
+
+       unset BC_ENV_ARGS #24568
+       export RPM_PACKAGE_VERSION=no #368025
+
+       econf \
+               $(use_enable locking) \
+               $(use_with caps setcap-hacks) \
+               $(use_with gdk-pixbuf pixbuf) \
+               $(use_with gtk) \
+               $(use_with jpeg) \
+               $(use_with new-login login-manager) \
+               $(use_with opengl gl) \
+               $(use_with pam) \
+               $(use_with suid setuid-hacks) \
+               $(use_with systemd) \
+               $(use_with xinerama xinerama-ext) \
+               --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-xshm-ext \
+               --without-gle \
+               --without-kerberos \
+               --without-motif \
+               --x-includes="${EPREFIX}"/usr/include \
+               --x-libraries="${EPREFIX}"/usr/$(get_libdir)
+}
+
+src_install() {
+       emake install_prefix="${D}" install
+
+       dodoc README{,.hacking}
+
+       if use pam; then
+               fperms 755 /usr/bin/${PN}
+               pamd_mimic_system ${PN} auth
+       fi
+
+       rm -f "${ED}"/usr/share/${PN}/config/{electricsheep,fireflies}.xml
+}
+
+pkg_postinst() {
+       optfeature 'Bitmap fonts 75dpi' media-fonts/font-adobe-75dpi
+       optfeature 'Bitmap fonts 100dpi' media-fonts/font-adobe-100dpi
+}

Reply via email to