summaryrefslogtreecommitdiff
path: root/games/spring
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2022-03-03 16:32:38 -0500
committerAndrew Clemons <andrew.clemons@gmail.com>2022-03-05 00:20:04 +1300
commit505cdfc62e37d622f9c14a3397924ecfede4195a (patch)
tree5e555a8c55daf037822796d7aa36137bbb10b2cc /games/spring
parent654c0dd1dd8fb27cd0a5332ded32455d1fe6f19d (diff)
downloadslackbuilds-505cdfc62e37d622f9c14a3397924ecfede4195a.tar.gz
games/spring: Fix 15.0 build.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com>
Diffstat (limited to 'games/spring')
-rw-r--r--games/spring/README6
-rw-r--r--games/spring/slack-desc2
-rw-r--r--games/spring/spring.SlackBuild81
3 files changed, 72 insertions, 17 deletions
diff --git a/games/spring/README b/games/spring/README
index 2287c84be5..2db04f9d77 100644
--- a/games/spring/README
+++ b/games/spring/README
@@ -1 +1,7 @@
Spring is a project aiming to create a new and versatile RTS Engine.
+
+Spring is an engine. It can play many different games and maps. To
+play, you need at least one Game and Map. See the documentation for
+information on available games and maps:
+
+https://springrts.com/wiki/Main_Page
diff --git a/games/spring/slack-desc b/games/spring/slack-desc
index 679dbf9526..a598edd0d3 100644
--- a/games/spring/slack-desc
+++ b/games/spring/slack-desc
@@ -10,10 +10,10 @@ spring: spring (a powerful free RTS engine)
spring:
spring: Spring is a project aiming to create a new and versatile RTS Engine.
spring:
+spring: Homepage: https://springrts.com/
spring:
spring:
spring:
spring:
spring:
-spring: https://springrts.com/
spring:
diff --git a/games/spring/spring.SlackBuild b/games/spring/spring.SlackBuild
index 787eab902a..6f05ebaaf5 100644
--- a/games/spring/spring.SlackBuild
+++ b/games/spring/spring.SlackBuild
@@ -21,22 +21,27 @@
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
+
# Script modified by Juan Pablo Cordova E. (jpcordovae@gmail.com)
-#
-#
+
+# 20220303 bkw: Modified by SlackBuilds.org, BUILD=2:
+# - fix build on 15.0 (fiddly C++ annoyances).
+# - add some JDK detection stuff, to avoid the need to log out and
+# back in after installing zulu-openjdk8, and to make the build
+# fail quickly and gracefully if there's no JDK.
+# - binary in /usr/games.
+# - absolute paths in .desktop file.
+# - install actually useful docs (not LICENSE.html, which had
+# *broken* hyperlinks!)
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=spring
VERSION=${VERSION:-104.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-# 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
@@ -60,7 +65,34 @@ else
LIBDIRSUFFIX=""
fi
-set -eu
+set -e
+
+# 20220303 bkw: make sure we have a JDK to use, or fail immediately
+# with a helpful hint (rather than spending a couple minutes untarring
+# and running cmake so it can fail). Feel free to steal this for your
+# own java-using SlackBuilds.
+
+DEFAULT_JDK_PROFILE=/etc/profile.d/zulu-openjdk8.sh
+
+if [ -n "$JAVA_HOME" ]; then
+ echo "==> Using JAVA_HOME=\"$JAVA_HOME\" from the environment."
+else
+ if [ -e $DEFAULT_JDK_PROFILE ]; then
+ source $DEFAULT_JDK_PROFILE
+ echo "==> Sourced $DEFAULT_JDK_PROFILE, JAVA_HOME=\"$JAVA_HOME\"."
+ else
+ echo "==> Warning, $DEFAULT_JDK_PROFILE not found."
+ fi
+fi
+
+if [ -z "$JAVA_HOME" -o ! -x "$JAVA_HOME/bin/java" ]; then
+ cat <<EOF
+==> JAVA_HOME is invalid or unset, and I couldn't set it by sourcing
+==> $DEFAULT_JDK_PROFILE.
+==> Did you forget to install the dependencies?
+EOF
+ exit 1
+fi
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
@@ -71,25 +103,42 @@ cd ${PRGNAM}_${VERSION}
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 \
+ -o -perm 511 \) -exec chmod 755 {} \+ -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
+
+# 20220303 bkw: OpenAL API change...
+sed -i 's,ALCdevice_struct,ALCdevice,g' rts/System/Sound/OpenAL/Sound.h
+
+# 20220303 bkw: Ugly, but it works.
+sed -i 's,^private:,public:,' rts/Lua/LuaObjectRendering.h
+
+# 20220303 bkw: snprintf() not declared in this scope...
+sed -i '1i#include <cstdio>' rts/System/Sync/SHA512.cpp
+
+# 20220303 bkw: this is what debian's gcc8 patch does:
+sed -i '/constexpr.*GLubyte/s,constexpr,,' rts/Rendering/GL/myGL.cpp
+
+# 20220303 bkw: nitpick the .desktop file.
+sed -i -e '/^Exec/s,=,=/usr/games/,' \
+ -e '/^Icon/s,=.*,=/usr/share/pixmaps/spring.png,' \
+ cont/freedesktop/applications/spring.desktop
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DBINDIR=games \
-DLIBDIR=lib${LIBDIRSUFFIX} \
-DMANDIR=man \
-DDOCDIR=doc/$PRGNAM-$VERSION \
.
make
-make install DESTDIR=$PKG
+make install/strip DESTDIR=$PKG
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a LICENSE.html $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+mkdir -p $PKGDOC
+cp -a LICENSE gpl-*.txt README.* THANKS AUTHORS FAQ $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc