From d5849b69b5a07f269bb792d65876ab4270aa36a6 Mon Sep 17 00:00:00 2001
From: "B. Watson" <yalhcru@gmail.com>
Date: Fri, 22 Oct 2021 04:04:13 -0400
Subject: games/gtkballs: New-style icons; setgid binary.

Signed-off-by: B. Watson <yalhcru@gmail.com>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
---
 games/gtkballs/README              |  10 +++++--
 games/gtkballs/doinst.sh           |   6 ++++
 games/gtkballs/gtkballs.SlackBuild |  57 ++++++++++++++++++++++++++-----------
 games/gtkballs/gtkballs.info       |   6 ++--
 games/gtkballs/icons/128.png       | Bin 0 -> 6039 bytes
 games/gtkballs/icons/16.png        | Bin 0 -> 2036 bytes
 games/gtkballs/icons/32.png        | Bin 0 -> 2924 bytes
 games/gtkballs/icons/48.png        | Bin 0 -> 1920 bytes
 games/gtkballs/icons/96.png        | Bin 0 -> 5732 bytes
 games/gtkballs/slack-desc          |   6 ++--
 10 files changed, 61 insertions(+), 24 deletions(-)
 create mode 100644 games/gtkballs/icons/128.png
 create mode 100644 games/gtkballs/icons/16.png
 create mode 100644 games/gtkballs/icons/32.png
 create mode 100644 games/gtkballs/icons/48.png
 create mode 100644 games/gtkballs/icons/96.png

diff --git a/games/gtkballs/README b/games/gtkballs/README
index 84e9dd528419f..58a65f8499b85 100644
--- a/games/gtkballs/README
+++ b/games/gtkballs/README
@@ -1,3 +1,9 @@
-GtkBalls is the clone of well-known DOS game "Lines".
+gtkballs (clone of Lines - logic game about balls)
 
-Note: To save scores, join group 'games'.
+GtkBalls is a clone of the well-known MS-DOS game "Lines".
+
+See the man page or press F1 in the game, to see the rules.
+
+The game is installed setgid games, to be able to write to its high
+score file. If this bothers you, 'export SETGID=no' in the script
+environment; the game won't be able to save high scores in that case.
diff --git a/games/gtkballs/doinst.sh b/games/gtkballs/doinst.sh
index 5fb28930db0b9..3e5691a052b5b 100644
--- a/games/gtkballs/doinst.sh
+++ b/games/gtkballs/doinst.sh
@@ -1,3 +1,9 @@
 if [ -x /usr/bin/update-desktop-database ]; then
   /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
 fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+  if [ -x /usr/bin/gtk-update-icon-cache ]; then
+    /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1
+  fi
+fi
diff --git a/games/gtkballs/gtkballs.SlackBuild b/games/gtkballs/gtkballs.SlackBuild
index 69580b105393f..b7783265b868f 100644
--- a/games/gtkballs/gtkballs.SlackBuild
+++ b/games/gtkballs/gtkballs.SlackBuild
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# Copyright 2010  Binh Nguyen <binhvng@gmail.com>
+# Copyright 2010  Binh Nguyen <email removed>
 # All rights reserved.
 #
 # Redistribution and use of this script, with or without modification, is
@@ -20,13 +20,25 @@
 #  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 #  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+# Note to self: keep an eye on https://github.com/emorozov/gtkballs
+# It looks like the original author has started development again,
+# but so far there are no new releases.
+
+# 20211021 bkw: BUILD=3
+# - binary in /usr/games.
+# - /usr/share/gtkballs => /usr/share/games/gtkballs.
+# - new-style icons.
+# - install setgid games by default.
+# - add SETGID=no in case someone doesn't trust it.
+# - include upstream's "asp" theme.
+
 # 20140228 bkw: took over maintenance, simplified a bit
 
 cd $(dirname $0) ; CWD=$(pwd)
 
 PRGNAM=gtkballs
 VERSION=${VERSION:-3.1.5}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
 TAG=${TAG:-_SBo}
 PKGTYPE=${PKGTYPE:-tgz}
 
@@ -38,9 +50,6 @@ if [ -z "$ARCH" ]; then
   esac
 fi
 
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
 if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
   echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
   exit 0
@@ -72,16 +81,16 @@ cd $TMP
 rm -rf $PRGNAM-$VERSION
 tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
 cd $PRGNAM-$VERSION
+tar xvfC $CWD/asp.tar.bz2 $PRGNAM-data/themes
 chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
+find -L .  -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+        \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
 
 CFLAGS="$SLKCFLAGS" \
 ./configure \
   --prefix=/usr \
+  --bindir=/usr/games \
+  --datadir=/usr/share/games \
   --libdir=/usr/lib${LIBDIRSUFFIX} \
   --sysconfdir=/etc \
   --localstatedir=/var/games/$PRGNAM \
@@ -91,21 +100,35 @@ CFLAGS="$SLKCFLAGS" \
 make
 make install-strip DESTDIR=$PKG
 
-chown -R root:games $PKG/var/games/$PRGNAM
-chmod -R ug+w $PKG/var/games/$PRGNAM
+if [ "${SETGID:-yes}" = "yes" ]; then
+  chown -R root:games $PKG/var/games/$PRGNAM $PKG/usr/games/$PRGNAM
+  chmod g+s $PKG/usr/games/$PRGNAM
+  chmod -R ug+w $PKG/var/games/$PRGNAM
+fi
 
 gzip $PKG/usr/man/man?/$PRGNAM.*
 
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING ChangeLog NEWS README* TODO \
-  $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC
+cp -a COPYING ChangeLog NEWS README TODO $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+# These 2 have Cyrillic characters:
+iconv -f iso-8859-5 AUTHORS -t utf-8 > $PKGDOC/AUTHORS
+iconv -f iso-8859-5 README.russian -t utf-8 > $PKGDOC/README.russian
 
 mkdir -p $PKG/usr/share/applications
 cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
 
+for i in $CWD/icons/*.png; do
+  px=$( basename $i | cut -d. -f1 )
+  size=${px}x${px}
+  dir=$PKG/usr/share/icons/hicolor/$size/apps
+  mkdir -p $dir
+  cat $i > $dir/$PRGNAM.png
+done
+
 mkdir -p $PKG/usr/share/pixmaps
-ln -s ../$PRGNAM/${PRGNAM}_16x16.png $PKG/usr/share/pixmaps/$PRGNAM.png
+ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
 
 mkdir -p $PKG/install
 cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/games/gtkballs/gtkballs.info b/games/gtkballs/gtkballs.info
index b0e20655dde16..d5858d6e02ff1 100644
--- a/games/gtkballs/gtkballs.info
+++ b/games/gtkballs/gtkballs.info
@@ -1,8 +1,10 @@
 PRGNAM="gtkballs"
 VERSION="3.1.5"
 HOMEPAGE="http://gtkballs.antex.ru/"
-DOWNLOAD="http://gtkballs.antex.ru/dist/gtkballs-3.1.5.tar.gz"
-MD5SUM="1654799db1e9a46607b06f7ad3c0bf05"
+DOWNLOAD="http://gtkballs.antex.ru/dist/gtkballs-3.1.5.tar.gz \
+          http://gtkballs.antex.ru/themes/asp.tar.bz2"
+MD5SUM="1654799db1e9a46607b06f7ad3c0bf05 \
+        ad2e9d5990c6d26024dbac74475f957f"
 DOWNLOAD_x86_64=""
 MD5SUM_x86_64=""
 REQUIRES=""
diff --git a/games/gtkballs/icons/128.png b/games/gtkballs/icons/128.png
new file mode 100644
index 0000000000000..dffab6242b627
Binary files /dev/null and b/games/gtkballs/icons/128.png differ
diff --git a/games/gtkballs/icons/16.png b/games/gtkballs/icons/16.png
new file mode 100644
index 0000000000000..7a3c93a317d26
Binary files /dev/null and b/games/gtkballs/icons/16.png differ
diff --git a/games/gtkballs/icons/32.png b/games/gtkballs/icons/32.png
new file mode 100644
index 0000000000000..dca932b305eac
Binary files /dev/null and b/games/gtkballs/icons/32.png differ
diff --git a/games/gtkballs/icons/48.png b/games/gtkballs/icons/48.png
new file mode 100644
index 0000000000000..b903dac9723be
Binary files /dev/null and b/games/gtkballs/icons/48.png differ
diff --git a/games/gtkballs/icons/96.png b/games/gtkballs/icons/96.png
new file mode 100644
index 0000000000000..d40f449fd5783
Binary files /dev/null and b/games/gtkballs/icons/96.png differ
diff --git a/games/gtkballs/slack-desc b/games/gtkballs/slack-desc
index 68cdffee98a20..79f8f63abbe77 100644
--- a/games/gtkballs/slack-desc
+++ b/games/gtkballs/slack-desc
@@ -8,11 +8,11 @@
         |-----handy-ruler------------------------------------------------------|
 gtkballs: gtkballs (clone of Lines - logic game about balls)
 gtkballs:
-gtkballs: GtkBalls is the clone of well-known DOS game "Lines".
-gtkballs:
-gtkballs: Homepage: http://gtkballs.antex.ru/
+gtkballs: GtkBalls is a clone of the well-known MS-DOS game "Lines".
 gtkballs:
+gtkballs: See the man page or press F1 in the game, to see the rules.
 gtkballs:
+gtkballs: Homepage: http://gtkballs.antex.ru/
 gtkballs:
 gtkballs:
 gtkballs:
-- 
cgit v1.2.3