summaryrefslogtreecommitdiff
path: root/xscreensaver
diff options
context:
space:
mode:
Diffstat (limited to 'xscreensaver')
-rw-r--r--xscreensaver/.SRCINFO31
-rw-r--r--xscreensaver/PKGBUILD101
-rw-r--r--xscreensaver/license-from-upstream10
-rwxr-xr-xxscreensaver/migrate-xscreensaver-config.sh34
-rw-r--r--xscreensaver/xscreensaver-config.xsl30
5 files changed, 206 insertions, 0 deletions
diff --git a/xscreensaver/.SRCINFO b/xscreensaver/.SRCINFO
new file mode 100644
index 0000000..62eab5a
--- /dev/null
+++ b/xscreensaver/.SRCINFO
@@ -0,0 +1,31 @@
+pkgbase = xscreensaver-backends
+ pkgdesc = Screensavers from XScreenSaver for common frontends
+ pkgver = 6.06
+ pkgrel = 2
+ url = http://www.jwz.org/xscreensaver/
+ arch = i686
+ arch = x86_64
+ license = BSD
+ makedepends = bc
+ makedepends = intltool
+ makedepends = libxslt
+ makedepends = openmotif
+ depends = gtk3
+ depends = gdk-pixbuf2
+ depends = libxt
+ depends = glu
+ depends = perl
+ conflicts = xscreensaver
+ conflicts = xscreensaver-hacks
+ conflicts = mate-screensaver-hacks
+ noextract = xscreensaver-6.06.tar.gz
+ source = http://www.jwz.org/xscreensaver/xscreensaver-6.06.tar.gz
+ source = LICENSE
+ source = migrate-xscreensaver-config.sh
+ source = xscreensaver-config.xsl
+ sha1sums = fa7e1da709972c640a913d42039ba8609ed6218e
+ sha1sums = 3eedb8b91b13c29df9b1fe5cbb027e1470b802d2
+ sha1sums = 19195ef59f0dbc61c6ed599a968213a8f0a7a5d4
+ sha1sums = e561e36c7bae61c3f5da65e4fb19a22e698f4584
+
+pkgname = xscreensaver-backends
diff --git a/xscreensaver/PKGBUILD b/xscreensaver/PKGBUILD
new file mode 100644
index 0000000..cfa3afb
--- /dev/null
+++ b/xscreensaver/PKGBUILD
@@ -0,0 +1,101 @@
+# Maintainer: Deposite Pirate <dpirate at metalpunks dot info>
+#
+# Upstream: https://git.metalpunks.info/arch-ports
+
+_pkgname='xscreensaver'
+pkgname=("${_pkgname}" "${_pkgname}-hacks")
+pkgver=6.12
+pkgrel=2
+pkgdesc="Screen saver and locker for the X Window System"
+url="http://www.jwz.org/xscreensaver/"
+arch=('i686' 'x86_64')
+license=('BSD')
+makedepends=('bc' 'intltool' 'libxpm' 'gdm' 'systemd' 'systemd-libs')
+source=(https://www.jwz.org/xscreensaver/${_pkgname}-${pkgver}.tar.gz
+ license-from-upstream
+ migrate-xscreensaver-config.sh
+ xscreensaver-config.xsl)
+noextract=("${_pkgname}-${pkgver}.tar.gz")
+sha256sums=('4ff6798217e3bbbc3c7336beeda7e83eafbf03301ac29b2236da66a0f1317643'
+ 'c0247a0328f07656f6b7a5854f57fe735579f161b6f40df967cf9a5eab772d63'
+ '44afb1c918e61f63606175fcbb2fc25a45bca80e9341acc77d66a79809b05671'
+ 'a0c183a515c15b1a911c295e3ffbe96fa8a70444e2f1becc21c772e1608de7be')
+
+prepare() {
+ # xscreensaver-6.12 fails to extract with bsdtar because of some hard link
+ # nonsense.
+ tar zxvf "${srcdir}/${_pkgname}-${pkgver}.tar.gz" -C "${srcdir}"
+}
+
+build() {
+ cd ${_pkgname}-${pkgver}
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --without-setuid-hacks \
+ --with-pam \
+ --with-login-manager \
+ --with-gtk \
+ --with-gl \
+ --without-gle \
+ --with-pixbuf \
+ --with-jpeg \
+ --with-systemd \
+ --enable-pam-check-account-type
+ make
+}
+
+package_xscreensaver() {
+ pkgdesc="Screen saver and locker for the X Window System"
+ depends=('xscreensaver-hacks' 'gtk3' 'libsystemd.so' 'pam' 'libpam.so'
+ 'libxcrypt' 'libcrypt.so' 'libxmu' 'libxt')
+ optdepends=('gdm: for login manager support')
+ backup=('etc/pam.d/xscreensaver')
+
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ install -d "${pkgdir}/etc/pam.d"
+ make install_prefix="${pkgdir}" install
+
+ # Files that belong in xscreensaver-hacks
+ rm -rf "${pkgdir}/usr/share/fonts"
+
+ find "${pkgdir}/usr/lib/xscreensaver" -maxdepth 1 -type f \
+ ! -name "xscreensaver-auth" ! -name "xscreensaver-systemd" -delete
+ find "${pkgdir}/usr/share/man/man6" -maxdepth 1 -type f \
+ ! -name "xscreensaver-auth.6" ! -name "xscreensaver-systemd.6" -delete
+}
+
+package_xscreensaver-hacks() {
+ pkgdesc="Collection of XScreenSaver hacks"
+ depends=('glibc' 'glib2' 'gdk-pixbuf2' 'libglvnd' 'glu' 'libx11' 'libxext'
+ 'libxft' 'libxi' 'libxt' 'libxrandr' 'libxxf86vm' 'libxinerama'
+ 'libjpeg-turbo' 'libjpeg.so' 'perl-libwww' 'xorg-appres')
+
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ make install_prefix="${pkgdir}" install
+ install -Dm644 "${srcdir}/license-from-upstream" -T \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ # Create the .desktop files used by xfce4-screensaver
+ install -dm755 "${pkgdir}/usr/share/applications/screensavers"
+ (
+ cd "${pkgdir}/usr/share/applications/screensavers"
+ sh "${srcdir}/migrate-xscreensaver-config.sh" \
+ "${pkgdir}/usr/share/xscreensaver/config/*.xml"
+ )
+
+ # Files that belong in xscreensaver
+ # xfce4-screensaver already has popsquares
+ rm -rf \
+ "${pkgdir}/etc" \
+ "${pkgdir}/usr/bin" \
+ ${pkgdir}/usr/share/{pixmaps,xscreensaver,man/man1} \
+ ${pkgdir}/usr/share/applications/*.desktop \
+ ${pkgdir}/usr/share/applications/screensavers/popsquares.desktop \
+ ${pkgdir}/usr/share/man/man1/xscreensaver{,-{demo,settings,command}}.1 \
+ ${pkgdir}/usr/share/man/man6/xscreensaver-{auth,systemd}.6 \
+ "${pkgdir}/usr/lib/X11" \
+ ${pkgdir}/usr/lib/xscreensaver/xscreensaver-{auth,systemd}
+}
diff --git a/xscreensaver/license-from-upstream b/xscreensaver/license-from-upstream
new file mode 100644
index 0000000..406467c
--- /dev/null
+++ b/xscreensaver/license-from-upstream
@@ -0,0 +1,10 @@
+/* xscreensaver, Copyright (c) 1991-2013 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
diff --git a/xscreensaver/migrate-xscreensaver-config.sh b/xscreensaver/migrate-xscreensaver-config.sh
new file mode 100755
index 0000000..860a0d5
--- /dev/null
+++ b/xscreensaver/migrate-xscreensaver-config.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+DIST_BIN=`dirname "$0"`
+
+CMD=xsltproc
+XSL=${DIST_BIN}/xscreensaver-config.xsl
+
+if test "x$1" = "x" -o "x$1" = "x-h" -o "x$1" = "x--help"; then
+ echo "usage: $0 [file] ..."
+ exit 1
+fi
+
+if [ ! -r ${XSL} ]; then
+ echo "Cannot find XSLT file"
+ exit 1
+fi
+
+FILES="$@"
+for FILE in $FILES; do
+ echo "${FILE}" | grep ".xml$" > /dev/null
+ if [ $? -ne 0 ]; then
+ echo "Skipping non-xml file: ${FILE}"
+ continue
+ fi
+
+ d=`dirname ${FILE}`
+ b=`basename ${FILE} .xml`
+
+ outfile="${b}.desktop"
+ echo "Creating: ${outfile}"
+ ${CMD} -o ${outfile} ${XSL} ${FILE}
+done
+
+ exit 0
diff --git a/xscreensaver/xscreensaver-config.xsl b/xscreensaver/xscreensaver-config.xsl
new file mode 100644
index 0000000..b5bc445
--- /dev/null
+++ b/xscreensaver/xscreensaver-config.xsl
@@ -0,0 +1,30 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+<xsl:output method="text" indent="no" />
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="screensaver">
+[Desktop Entry]
+Encoding=UTF-8
+Name=<xsl:value-of select="@_label" />
+Comment=<xsl:value-of select="normalize-space(_description)" />
+<xsl:if test="count(command/@name) != 0">
+<xsl:variable name="executable" select="concat('/usr/lib/xscreensaver/', normalize-space(command/@name))" />
+TryExec=<xsl:value-of select="$executable" />
+Exec=<xsl:value-of select="concat($executable, ' ', normalize-space(command/@arg))" />
+</xsl:if>
+<xsl:if test="count(command/@name) = 0">
+<xsl:variable name="executable" select="concat('/usr/lib/xscreensaver/', normalize-space(@name))" />
+TryExec=<xsl:value-of select="$executable" />
+Exec=<xsl:value-of select="concat($executable, ' ', normalize-space(command/@arg))" />
+</xsl:if>
+StartupNotify=false
+Terminal=false
+Type=Application
+Categories=Screensaver;
+OnlyShowIn=MATE;GNOME;XFCE;
+Hidden=true
+</xsl:template>
+
+</xsl:stylesheet>