x11-misc/xscreensaver-anclock: new package, version 2.1.0

Bug: https://bugs.gentoo.org/748123

Signed-off-by: Pascal Jäger <pascal.jaeger@leimstift.de>
This commit is contained in:
Pascal Jäger
2022-10-24 23:08:19 +02:00
parent 7eff1ebc7f
commit a0b9cf7266
13 changed files with 539 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
DIST anclock-2.1.0-for-xscreensaver-6.04.patch.gz 12666 BLAKE2B 8272db76fd249d5ea7a806e399ea26f5bc93fd23564467a2e319ff8d27e43d16c3f7120c727b04bd0f0c4d32e82756eb10a7fe09b4dbf31c0fdcf6b0a92ba0ee SHA512 fcd43fc6d17564de24a76c3c3b42576c91b0a4354c4eddeeb229a70ae922099e518f72782ab1732c463409f24cc66a40d980f05d8c1d744e5c5de00694277387
DIST xscreensaver-6.05.1.tar.gz 26110057 BLAKE2B 97c16c9f0b2a0b4d00ddccd711b921ca683bd233bc3d07ecad38b68ff94b149a20512246dd6bae052323f00b1b433f56469c5638a031cbc65b61c2b84a0180e3 SHA512 c659a769ff71020b9f96b7e707bd1bcc667eb304179305d56b1be45eed095d650a8aa019890a0c5d444672f9dd68516c99c53b0df94cd96196d7f30a24b987e3

View File

@@ -0,0 +1,11 @@
--- a/hacks/memscroller.c
+++ b/hacks/memscroller.c
@@ -307,7 +307,7 @@
-- sbrk(2) man page on BSD systems, as of 1995 or so.
*/
#ifdef HAVE_SBRK
-# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) /* gcc >= 4.2 */
+# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) /* gcc >= 4.6 */
/* Don't print "warning: 'sbrk' is deprecated". */
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
# endif

View File

@@ -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

View File

@@ -0,0 +1,12 @@
https://bugs.gentoo.org/803479
--- a/configure.ac
+++ b/configure.ac
@@ -1062,6 +1062,7 @@
AC_PROG_INSTALL
AC_PROG_INSTALL_DIRS
AC_PROG_MAKE_SET
+AM_PROG_INSTALL_SH
# By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'.
# That's wrong: it should be set to '${INSTALL}', so that one can

View File

@@ -0,0 +1,120 @@
From 0f4d029102c651ccbc69860bf222126d2c58e36e Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sun, 13 Jun 2021 23:41:42 +0200
Subject: [PATCH] configure.ac: Stop asking rpm and dpkg things, we're on
Gentoo
---
configure.ac | 96 ----------------------------------------------------
1 file changed, 96 deletions(-)
diff --git a/configure.ac b/configure.ac
index 9b8641e..2eaea28 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4833,102 +4833,6 @@ for bad_choice in xscreensaver xscreensaver-settings xscreensaver-command ; do
done
-# Warn if there's a previous RPM package installed.
-
-rpm_vers=
-if test -z "$RPM_PACKAGE_VERSION" ; then
- # Don't bother with this test if we are currently *building* an RPM.
- rpmnames="xscreensaver xscreensaver-base xscreensaver-extras
- xscreensaver-data xscreensaver-data-extra"
-
- # M4 sucks!!
- changequote(X,Y)
- pkg_vers=`(rpm -qv $rpmnames) 2>&- | \
- sed -n 's/^[-a-z]*-\([0-9][0-9]*[.].*\)/\1/p' | head -1`
- rpm_vers="$pkg_vers"
- changequote([,])
-fi
-
-if test \! -z "$rpm_vers" ; then
-
- # M4 sucks!!
- changequote(A,B)
- pkg_bindir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)xscreensaver-settings$@\1@p'`
- pkg_bindir2=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)xscreensaver-demo$@\1@p'`
- pkg_hackdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)popsquares$@\1@p'`
- pkg_confdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)popsquares\.xml$@\1@p'`
- pkg_fontdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\).*\.ttf$@\1@p' | head -1`
- pkg_addir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)XScreenSaver$@\1@p'`
-
- if test -z "$pkg_bindir" ; then pkg_bindir="$pkg_bindir2" ; fi
- changequote([,])
-fi
-
-
-# Warn if there's a previous Debian package installed.
-#
-deb_vers=
-if test -z "$pkg_vers" ; then
- debnames="xscreensaver xscreensaver-data xscreensaver-data-extra"
- pkg_vers=''
- for dpkg in $debnames ; do
- if test -z "$pkg_vers"; then
- pkg_vers=`dpkg -s $dpkg 2>/dev/null | sed -n 's/^Version: \(.*\)$/\1/p'`
- deb_vers="$pkg_vers"
- fi
- done
-fi
-
-if test \! -z "$deb_vers" ; then
-
- # M4 sucks!!
- changequote(A,B)
- pkg_bindir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)xscreensaver-settings$@\1@p'`
- pkg_bindir2=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)xscreensaver-demo$@\1@p'`
- pkg_hackdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)popsquares$@\1@p'`
- pkg_confdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)popsquares\.xml$@\1@p'`
- pkg_fontdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\).*\.ttf$@\1@p' | head -1`
- pkg_addir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)XScreenSaver[^/]*$@\1@p'`
- changequote([,])
-
- if test -z "$pkg_bindir" ; then pkg_bindir="$pkg_bindir2" ; fi
-fi
-
-bindir_err=
-hackdir_err=
-confdir_err=
-fontdir_err=
-addir_err=
-if ! test -z "$pkg_vers" ; then
-
- err=" (DIFFERS)"
-
- if test -z "$pkg_bindir" ; then pkg_bindir='???'
- elif test "$pkg_bindir" != "${bindir}/" ; then bindir_err="$err" ; fi
-
- if test -z "$pkg_hackdir" ; then pkg_hackdir='???'
- elif test "$pkg_hackdir" != "${HACKDIR}/" ; then hackdir_err="$err"; fi
-
- if test -z "$pkg_confdir" ; then pkg_confdir='???'
- elif test "$pkg_confdir" != "${HACK_CONF_DIR}/" ; then confdir_err="$err"; fi
-
- if test -z "$pkg_fontdir" ; then pkg_fontdir='none'
- elif test "$pkg_fontdir/" != "${FONT_DIR}" ; then fontdir_err="$err"; fi
-
- if test -z "$pkg_addir" ; then pkg_addir='???'
- elif test "$pkg_addir" != "${APPDEFAULTS}/" ; then addir_err="$err" ; fi
-
- warning=no
- warnL "There is already an installed package of xscreensaver"
- warn2 "version \"$pkg_vers\", in these directories:"
- echo ""
- warn2 "User programs: $pkg_bindir$bindir_err"
- warn2 "Screen savers: $pkg_hackdir$hackdir_err"
- warn2 "Configuration: $pkg_confdir$confdir_err"
- warn2 "Extra fonts: $pkg_fontdir$fontdir_err"
- warn2 "App Defaults: $pkg_addir$addir_err"
-fi
-
echo ""
echo "$warnsep"
echo ""
--
2.31.1

View File

@@ -0,0 +1,47 @@
--- a/driver/XScreenSaver.ad.in
+++ b/driver/XScreenSaver.ad.in
@@ -31,21 +31,21 @@
*mode: random
*timeout: 0:10:00
*cycle: 0:10:00
-*lockTimeout: 0:00:00
+*lockTimeout: 0:30:00
*passwdTimeout: 0:00:30
-*dpmsEnabled: False
+*dpmsEnabled: True
*dpmsQuickoffEnabled: False
*dpmsStandby: 2:00:00
*dpmsSuspend: 2:00:00
*dpmsOff: 4:00:00
-*grabDesktopImages: True
+*grabDesktopImages: False
*grabVideoFrames: False
*chooseRandomImages: @DEFAULT_IMAGES_P@
! This can be a local directory name, or the URL of an RSS or Atom feed.
*imageDirectory: @DEFAULT_IMAGE_DIRECTORY@
*nice: 10
*memoryLimit: 0
-*lock: False
+*lock: True
*verbose: False
*fade: True
*unfade: True
@@ -62,7 +62,7 @@
*textLiteral: XScreenSaver
*textFile: @DEFAULT_TEXT_FILE@
*textProgram: fortune
-*textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss
+*textURL: https://planet.gentoo.org/rss20.xml
! This is what the "Settings" button on the splash screen runs.
*demoCommand: xscreensaver-settings
@@ -103,7 +103,8 @@
! The strftime(3) format string for printing the time on the password dialog.
-*dateFormat: %I:%M %p, %a %b %e
+!*dateFormat: %I:%M %p, %a %b %e
+*dateFormat: %x %X
! DD MMM:
! *dateFormat: %I:%M %p, %e %b (%a)
! 12 hour time only:

View File

@@ -0,0 +1,25 @@
From 9ff9a74152ebd8c04df12d340ab6e7c726690a82 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sat, 17 Jul 2021 23:50:16 +0200
Subject: [PATCH 2/2] Fix detection of GTK+ for systems without gdk-pixbuf
---
configure.ac | 2 --
1 file changed, 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 4cb3385..bef0d1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2819,8 +2819,6 @@ if test "$with_gtk" = yes; then
pkg_check_version gtk+-2.0 2.22.0 ; ac_gtk_version_string="$vers"
pkg_check_version gmodule-2.0 2.0.0
pkg_check_version libxml-2.0 2.4.6
- pkg_check_version gdk-pixbuf-2.0 2.0.0
- pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
have_gtk="$ok"
if test "$have_gtk" = no; then
--
2.32.0

View File

@@ -0,0 +1,30 @@
diff -Nru a/driver/prefsw.c b/driver/prefsw.c
--- a/driver/prefsw.c 2021-02-19 02:52:32.000000000 +0100
+++ b/driver/prefsw.c 2021-05-07 15:20:09.280321274 +0200
@@ -798,7 +798,10 @@
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 -Nru a/driver/setuid.c b/driver/setuid.c
--- a/driver/setuid.c 2021-02-05 16:16:23.000000000 +0100
+++ b/driver/setuid.c 2021-05-07 15:21:05.987949943 +0200
@@ -104,9 +104,12 @@
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)

View File

@@ -0,0 +1,56 @@
From 25b22d16fabbdb3e7a6afcd6cd8d1a25afaaa252 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sat, 17 Jul 2021 23:44:44 +0200
Subject: [PATCH 1/2] Fix install for --without-motif --without-gtk
Related to https://bugs.gentoo.org/796992
---
configure.ac | 4 ++++
driver/Makefile.in | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 2eaea28..4cb3385 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4148,13 +4148,16 @@ fi
PREFERRED_DEMO_PROGRAM=''
ALL_DEMO_PROGRAMS=
+SETTINGS_PROGRAM_OR_NOT=
if test "$have_motif" = yes; then
PREFERRED_DEMO_PROGRAM=xscreensaver-settings-Xm
ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
+ SETTINGS_PROGRAM_OR_NOT=xscreensaver-settings
fi
if test "$have_gtk" = yes; then
PREFERRED_DEMO_PROGRAM=xscreensaver-settings-Gtk
ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
+ SETTINGS_PROGRAM_OR_NOT=xscreensaver-settings
fi
@@ -4306,6 +4309,7 @@ AC_SUBST(INCLUDES)
AC_SUBST(PREFERRED_DEMO_PROGRAM)
AC_SUBST(ALL_DEMO_PROGRAMS)
+AC_SUBST(SETTINGS_PROGRAM_OR_NOT)
AC_SUBST(SAVER_LIBS)
AC_SUBST(MOTIF_LIBS)
AC_SUBST(GTK_LIBS)
diff --git a/driver/Makefile.in b/driver/Makefile.in
index 0e986a9..1877d8a 100644
--- a/driver/Makefile.in
+++ b/driver/Makefile.in
@@ -212,7 +212,7 @@ TEST_EXES = test-passwd test-uid test-xdpms test-grab \
xdpyinfo test-screens test-yarandom test-xinput \
test-xkb
-EXES = xscreensaver xscreensaver-command xscreensaver-settings
+EXES = xscreensaver xscreensaver-command @SETTINGS_PROGRAM_OR_NOT@
UTIL_EXES = xscreensaver-gfx @EXES_SYSTEMD@
SETUID_EXES = xscreensaver-auth
DEMO_EXES = @ALL_DEMO_PROGRAMS@
--
2.32.0

View File

@@ -0,0 +1,28 @@
From fa531a3ff2dd8aa4e0b6767e3390f88bfbaca791 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Mon, 14 Jun 2021 12:11:32 +0200
Subject: [PATCH] hacks/glx/Makefile.in: Fix target install-program for
--without-gl
Symptom was:
/usr/bin/install: cannot stat 'sonar': No such file or directory
---
hacks/glx/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hacks/glx/Makefile.in b/hacks/glx/Makefile.in
index ed07a1f..6ae969c 100644
--- a/hacks/glx/Makefile.in
+++ b/hacks/glx/Makefile.in
@@ -320,7 +320,7 @@ install-program:: $(EXES)
$(INSTALL_PROGRAM) $$program $$idir/$$program ; \
done ; \
\
- exes="$(SUID_EXES)" ; \
+ exes="@SUID_EXES@" ; \
if [ @SETUID_HACKS@ = yes ]; then \
sinst="$(INSTALL_SETUID)" ; \
else \
--
2.31.1

View File

@@ -0,0 +1,12 @@
Upstream don't support this anymore (https://github.com/gentoo/gentoo/pull/24404#issuecomment-1061128526)
but it's a trivial patch so let's keep it going for now.
--- xscreensaver-6.03.orig/configure.ac 2022-03-04 11:23:24.415172769 -0700
+++ xscreensaver-6.03/configure.ac 2022-03-04 11:27:40.419205257 -0700
@@ -4737,7 +4737,6 @@
CONF_STATUS=1
elif test "$with_gl_req" = no ; then
noteL 'The OpenGL 3D library is not being used.'
- CONF_STATUS=1
else
noteL 'The OpenGL 3D library was not found.'
CONF_STATUS=1

View File

@@ -0,0 +1,29 @@
The configure scripts exits on a non zero exit code even with a warning. Even
though for upstream this is just a warning, for portage this means failure and
it will exit.
We therefore alter the exit codes where neccesary.
--- a/configure.ac
+++ b/configure.ac
@@ -4588,7 +4588,6 @@ if test "$have_motif" = no -a "$have_gtk" = no; then
else
warnL "The GTK libraries do not seem to be available; the"
warn2 "\`xscreensaver-settings' program requires them."
- CONF_STATUS=1
# echo ''
# warn2 'You can use Motif or Lesstif instead of GTK (use the'
# warn2 "\`--with-motif' option) but that is NOT recommended."
@@ -4615,7 +4614,6 @@ if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then
warn "GTK is being used, but the GDK-Pixbuf library and/or"
warn2 "headers were not found. That can't be good. Please"
warn2 "install the GDK-Pixbuf development kit and re-configure."
- CONF_STATUS=1
fi
if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
@@ -4733,7 +4731,6 @@ if test "$have_png" = no ; then
if test "$png_halfassed" = yes ; then halfassery ; fi
warn2 "Many things aren't going to work right."
- CONF_STATUS=1
fi

View File

@@ -0,0 +1,151 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools flag-o-matic
DESCRIPTION="Analog clock hack for the xscreensaver program"
HOMEPAGE="http://pt2k.xii.jp/software/anclock/xscreensaver/index_e.html"
SRC_URI="https://www.jwz.org/xscreensaver/xscreensaver-6.05.1.tar.gz \
http://pt2k.xii.jp/software/anclock/xscreensaver/anclock-2.1.0-for-xscreensaver-6.04.patch.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
COMMON_DEPEND="
dev-libs/libxml2
x11-apps/appres
x11-apps/xwininfo
x11-libs/libX11
x11-libs/libXext
x11-libs/libXi
x11-libs/libXrandr
x11-libs/libXt
x11-libs/libXxf86vm
virtual/libcrypt:=
virtual/glu
virtual/opengl
sys-libs/pam
x11-libs/libXft
"
RDEPEND="
>=x11-misc/xscreensaver-6.01
"
DEPEND="
${COMMON_DEPEND}
x11-base/xorg-proto
"
BDEPEND="
dev-util/intltool
sys-devel/bc
sys-devel/gettext
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/xscreensaver-6.01-interix.patch
"${FILESDIR}"/xscreensaver-5.31-pragma.patch
"${FILESDIR}"/xscreensaver-6.01-gentoo.patch
"${FILESDIR}"/xscreensaver-5.45-gcc.patch
"${FILESDIR}"/xscreensaver-6.01-configure.ac-sandbox.patch
"${FILESDIR}"/xscreensaver-6.01-without-gl-makefile.patch
"${FILESDIR}"/xscreensaver-6.01-configure-install_sh.patch
"${FILESDIR}"/xscreensaver-6.03-without-gl-configure.patch
"${FILESDIR}"/xscreensaver-6.05-configure-exit-codes.patch
)
S="${WORKDIR}"/xscreensaver-6.05/
src_unpack() {
default
gunzip --force "${DISTDIR}/anclock-${PV}-for-xscreensaver-6.04.patch.gz"
}
src_prepare() {
default
config_rpath_update "${S}"/config.rpath
eapply "${WORKDIR}"/anclock-"${PV}"-for-xscreensaver-6.04.patch
# 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=(
--enable-locking
--without-elogind
--without-pixbuf
--without-gles
--without-glx
--without-gtk
--without-login-manager
--with-gl
--with-pam
--without-setuid-hacks
--without-systemd
--without-xinerama-ext
--with-jpeg=yes
--with-png=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 of xscreensaver
emake all
}
src_install() {
insinto /usr/share/xscreensaver/config
doins hacks/config/anclock.xml
mv hacks/{anclock.man,anclock.6} || die
doman hacks/anclock.6
exeinto /usr/lib64/misc/xscreensaver
doexe hacks/anclock
}
pkg_postinst() {
elog ""
elog "To add the anclock screensaver to xscreensaver-settings, add the line"
elog "'anclock --root' to the 'programs:' section in the file"
elog "~/.xscreensaver in your home-directory."
elog "e.g. run 'sed -i '/programs:/a anclock --root' ~/.xscreensaver'"
}