public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Pascal Jäger" <pascal.jaeger@leimstift.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:dev commit in: gui-apps/wscreensaver/, gui-apps/wscreensaver/files/
Date: Wed, 13 Dec 2023 21:38:37 +0000 (UTC)	[thread overview]
Message-ID: <1702503503.e45f01c80cf9e0acf98ce3b4ae5a04bcf4c6f1f9.pascal.jaeger@gentoo> (raw)

commit:     e45f01c80cf9e0acf98ce3b4ae5a04bcf4c6f1f9
Author:     Pascal Jäger <pascal.jaeger <AT> leimstift <DOT> de>
AuthorDate: Wed Dec 13 21:29:17 2023 +0000
Commit:     Pascal Jäger <pascal.jaeger <AT> leimstift <DOT> de>
CommitDate: Wed Dec 13 21:38:23 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e45f01c8

gui-apps/wscreensaver: new package, add 9999

Signed-off-by: Pascal Jäger <pascal.jaeger <AT> leimstift.de>

 ...ver-fix-implicit-function-decl-when-JWXYZ.patch | 19 ++++++
 .../files/xscreensaver-5.31-pragma.patch           | 11 ++++
 .../wscreensaver/files/xscreensaver-5.45-gcc.patch | 16 +++++
 .../files/xscreensaver-6.01-gentoo.patch           | 47 ++++++++++++++
 gui-apps/wscreensaver/metadata.xml                 | 22 +++++++
 gui-apps/wscreensaver/wscreensaver-9999.ebuild     | 74 ++++++++++++++++++++++
 6 files changed, 189 insertions(+)

diff --git a/gui-apps/wscreensaver/files/wscreensaver-fix-implicit-function-decl-when-JWXYZ.patch b/gui-apps/wscreensaver/files/wscreensaver-fix-implicit-function-decl-when-JWXYZ.patch
new file mode 100644
index 0000000000..5f39a29dc0
--- /dev/null
+++ b/gui-apps/wscreensaver/files/wscreensaver-fix-implicit-function-decl-when-JWXYZ.patch
@@ -0,0 +1,19 @@
+Clang 16 does not allow implicit function declarations by default.
+When xscreensaver is compiled normally for X11, the function gettimeofday()
+is included via the header file X11/Xos.h.
+However, if X11 is not used and HAVE_JXYZ is used instead, we end up with a missing
+declaration for that function. I think upstream forgot to include the file here, he
+has done it for string.h though, which is a similar case.
+
+Pascal Jäger <pascal.jaeger@leimstift.de> (2023-12-13)
+
+--- a/hacks/screenhackI.h
++++ b/hacks/screenhackI.h
+@@ -71,6 +71,7 @@
+ #ifdef HAVE_JWXYZ
+ # include "jwxyz.h"
+ # include <string.h> /* X11/Xos.h brings this in. */
++# include <sys/time.h>
+ #else  /* real X11 */
+ # include <X11/Xlib.h>
+ # include <X11/Xutil.h>

diff --git a/gui-apps/wscreensaver/files/xscreensaver-5.31-pragma.patch b/gui-apps/wscreensaver/files/xscreensaver-5.31-pragma.patch
new file mode 100644
index 0000000000..97f4656344
--- /dev/null
+++ b/gui-apps/wscreensaver/files/xscreensaver-5.31-pragma.patch
@@ -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

diff --git a/gui-apps/wscreensaver/files/xscreensaver-5.45-gcc.patch b/gui-apps/wscreensaver/files/xscreensaver-5.45-gcc.patch
new file mode 100644
index 0000000000..b62fd1f309
--- /dev/null
+++ b/gui-apps/wscreensaver/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/gui-apps/wscreensaver/files/xscreensaver-6.01-gentoo.patch b/gui-apps/wscreensaver/files/xscreensaver-6.01-gentoo.patch
new file mode 100644
index 0000000000..41f8d7b7d0
--- /dev/null
+++ b/gui-apps/wscreensaver/files/xscreensaver-6.01-gentoo.patch
@@ -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:

diff --git a/gui-apps/wscreensaver/metadata.xml b/gui-apps/wscreensaver/metadata.xml
new file mode 100644
index 0000000000..3644050140
--- /dev/null
+++ b/gui-apps/wscreensaver/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>pascal.jaeger@leimstift.de</email>
+		<name>Pascal Jaeger</name>
+	</maintainer>
+	<longdescription lang="en">
+		Wscreensaver is an attempt to compile the screensaver collection
+		form Xscreensaver as animated backgrounds for Wayland.
+		wscreensaver is not a standalone program like xscreensaver.
+		Each indiviual screensaver is a standalane binary, that can be usid
+		in other programs such a <pkg>gui-apps/swaylock-plugin</pkg> or
+		standalone as an animated background.
+	</longdescription>
+	<upstream>
+		<remote-id type="sourcehut">~mstoeckl/wscreensaver</remote-id>
+		<maintainer status="active">
+			<name>Manuel Stoeckl</name>
+		</maintainer>
+	</upstream>
+</pkgmetadata>

diff --git a/gui-apps/wscreensaver/wscreensaver-9999.ebuild b/gui-apps/wscreensaver/wscreensaver-9999.ebuild
new file mode 100644
index 0000000000..b1631cd5df
--- /dev/null
+++ b/gui-apps/wscreensaver/wscreensaver-9999.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic git-r3 meson
+
+DESCRIPTION="Xscreensaver screensavers ported to wayland"
+HOMEPAGE="https://git.sr.ht/~mstoeckl/wscreensaver"
+
+EGIT_REPO_URI="https://git.sr.ht/~mstoeckl/${PN}"
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+	dev-libs/glib:2
+	dev-libs/wayland
+	media-libs/glu
+	media-libs/libglvnd
+	x11-libs/gdk-pixbuf:2
+"
+DEPEND="
+	${RDEPEND}
+	media-libs/libpng
+"
+BDEPEND="
+	dev-util/intltool
+	sys-devel/bc
+	sys-devel/gettext
+	virtual/pkgconfig
+	x11-base/xorg-proto
+"
+
+PATCHES=(
+	"${FILESDIR}"/xscreensaver-5.31-pragma.patch
+	"${FILESDIR}"/xscreensaver-6.01-gentoo.patch
+	"${FILESDIR}"/xscreensaver-5.45-gcc.patch
+	"${FILESDIR}"/wscreensaver-fix-implicit-function-decl-when-JWXYZ.patch
+)
+
+# see https://bugs.gentoo.org/898328
+QA_CONFIG_IMPL_DECL_SKIP=( getspnam_shadow )
+
+src_configure() {
+	econf
+	cd wayland
+	local S="$S"/wayland
+	# Will write a patch later and send it to upstream.
+	# For now accept it.
+	append-cflags -Wno-error=incompatible-function-pointer-types
+	meson_src_configure
+}
+
+src_compile() {
+	emake
+	local S="$S"/wayland
+	meson_src_compile
+}
+
+src_install() {
+	local filename
+	local S="${WORKDIR}/wscreensaver-${PV}-build"
+	insinto /usr/lib64/misc/"${PN}"
+	for file in  "${S}"/*; do
+		# exclude all files that have a contain a . e.g. have a file extension
+		# or contain the word meson-
+		filename=$(basename "${file}")
+		if [[ "${filename}" != *.* && "${filename}" != *meson-*  ]]; then
+			doins "${file}"
+			fperms +x /usr/lib64/misc/"${PN}"/"${filename}"
+		fi
+	done
+}


                 reply	other threads:[~2023-12-13 21:38 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1702503503.e45f01c80cf9e0acf98ce3b4ae5a04bcf4c6f1f9.pascal.jaeger@gentoo \
    --to=pascal.jaeger@leimstift.de \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox