summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author B. Watson2017-03-07 09:54:54 +0100
committer Willy Sudiarto Raharjo2017-03-11 01:04:21 +0100
commit75f15fd8012b2ce66b59030b24302e4d76e9f520 (patch)
tree4a12fd988b25c8eaad40671f359a86b732efe105
parente3d511de7b1da6cea7c3a1ff340f3544526bded1 (diff)
downloadslackbuilds-75f15fd8012b2ce66b59030b24302e4d76e9f520.tar.gz
games/hatari: Fix MIME and symlinks, document SDL2, other fixes.
Signed-off-by: B. Watson <yalhcru@gmail.com>
-rw-r--r--games/hatari/README3
-rw-r--r--games/hatari/hatari.SlackBuild62
-rw-r--r--games/hatari/hatari.xml44
-rw-r--r--games/hatari/hatariui.desktop2
-rw-r--r--games/hatari/slack-desc2
5 files changed, 91 insertions, 22 deletions
diff --git a/games/hatari/README b/games/hatari/README
index d6f981f135..ec9a202d4e 100644
--- a/games/hatari/README
+++ b/games/hatari/README
@@ -15,3 +15,6 @@ ROM images. Most ST software won't work without hatari_tos_roms.
Optional dependency: portaudio. Only used for emulated Falcon microphone
support. Autotetected by the SlackBuild.
+
+Optional dependency: SDL2. Autodetected. If you have SDL2 installed but
+want to build hatari with SDL-1.2, set SDL2=no in the environment.
diff --git a/games/hatari/hatari.SlackBuild b/games/hatari/hatari.SlackBuild
index e42310a38a..723bda4f79 100644
--- a/games/hatari/hatari.SlackBuild
+++ b/games/hatari/hatari.SlackBuild
@@ -6,6 +6,19 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# 20170307 bkw:
+# - BUILD=2
+# - add missing mkdir -p $TMP $PKG $OUTPUT (wtf did I do?!)
+# - binaries in /usr/games, not /usr/bin.
+# - man pages in section 6, not 1.
+# - install missing doc/fr/clavier-exemple.txt.
+# - previously SDL2 was optional and undocumented, add SDL2=no option
+# and document in README.
+# - stop spamming icon symlinks to /usr (they belong in $PKG/usr of course)
+# - update mime and desktop stuff. upstream started including a mime XML
+# package, but it's missing some of the stuff from my hatari.xml. The
+# new hatari.xml incorporates upstream's new stuff.
+
# 20170122 bkw:
# - updated for v2.0.0.
@@ -28,7 +41,7 @@
PRGNAM=hatari
VERSION=${VERSION:-2.0.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -57,34 +70,55 @@ fi
set -e
rm -rf $PKG $TMP/$PRGNAM-$VERSION
-
+mkdir -p $TMP $PKG $OUTPUT
cd $TMP
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
# configure script is really a wrapper for cmake, doesn't support
-# --libdir, --mandir, --docdir. cheat a little.
+# --bindir, --mandir, --docdir. cheat a little.
sed -i \
- -e 's,share/man/man1,man/man1,' \
+ -e 's,BINDIR *bin,BINDIR games,' \
+ -e 's,share/man/man1,man/man6,' \
-e "s,share/doc/$PRGNAM,doc/$PRGNAM-$VERSION," \
CMakeLists.txt
+# man pages should be in section 6
+sed -i '/\.TH/s,"1","6",' doc/*.1 doc/fr/*.1 tools/*.1 python-ui/*.1
+
# Hard-code the doc path in the UI (we don't use /usr/share/doc/hatari)
sed -i \
-e "/path *= *path *+/s,=.*,= \"/usr/doc/$PRGNAM-$VERSION/\"," \
python-ui/uihelpers.py
-./configure --prefix=/usr
+# see if we're building with SDL2 or not.
+if pkg-config --exists sdl2 && [ "${SDL2:-yes}" != "no" ]; then
+ SDL2OPT=""
+ WITHSDL=2.0
+else
+ SDL2OPT="--disable-sdl2"
+ WITHSDL=1.2
+fi
+
+./configure $SDL2OPT --prefix=/usr
+
+# Hard-coded paths for icon symlinks, they end up getting created in the
+# real /usr, not $PKG/usr.
+sed -i 's,\(^\t*\)\(/usr/share\),\1'$PKG'\2,' share/cmake_install.cmake
make
make install/strip DESTDIR=$PKG
+# man pages are in the right dir, but with .1
+rename .1. .6. $PKG/usr/man/man6/*.1.gz
+
DOCDIR=$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $DOCDIR/$PRGNAM.SlackBuild
# These docs don't get installed for some reason:
cp tools/hmsa/readme-hmsa.txt readme.txt gpl.txt \
- doc/changelog.txt doc/coding.txt doc/toc.js doc/video-recording.txt \
+ doc/changelog.txt doc/coding.txt doc/toc.js \
+ doc/video-recording.txt doc/fr/clavier-exemple.txt \
$DOCDIR
# The UI has its own docs:
@@ -95,21 +129,29 @@ for i in README TODO release-notes.txt; do
done
# Someone might find the French man page useful:
-mkdir -p $PKG/usr/man/fr/man1
-gzip -9c < doc/fr/$PRGNAM.1 > $PKG/usr/man/fr/man1/$PRGNAM.1.gz
+mkdir -p $PKG/usr/man/fr/man6
+gzip -9c < doc/fr/$PRGNAM.1 > $PKG/usr/man/fr/man6/$PRGNAM.6.gz
# Replace .desktop with modified one, auto-associates ST disks/executables.
cat $CWD/${PRGNAM}ui.desktop > $PKG/usr/share/applications/${PRGNAM}ui.desktop
-# Custom MIME types for ST disk images and executables, by script author.
+# Custom MIME types for ST disk images and executables. Based on hatari.xml
+# from upstream, with x-st-executable type added by script author.
mkdir -p $PKG/usr/share/mime/packages
cat $CWD/$PRGNAM.xml > $PKG/usr/share/mime/packages/$PRGNAM.xml
+for i in $PKG/usr/share/icons/hicolor/[0-9]*; do
+ ln -s application-x-st-disk-image.png $i/mimetypes/x-st-executable.png
+done
+
+ln -s application-x-st-disk-image.svg \
+ $PKG/usr/share/icons/hicolor/scalable/mimetypes/x-st-executable.png
+
# Don't symlink emutos to tos here, do it conditionally in doinst.sh.
( cd $PKG/usr/share/$PRGNAM && mv tos.img emutos.img )
mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
+sed "s,@WITHSDL@,$WITHSDL," $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
diff --git a/games/hatari/hatari.xml b/games/hatari/hatari.xml
index 15660d0d73..a897efaeff 100644
--- a/games/hatari/hatari.xml
+++ b/games/hatari/hatari.xml
@@ -1,17 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
- <mime-type type="application/x-atari-st-disk-image">
- <comment>Atari ST Disk Image</comment>
- <glob pattern="*.st.gz"/>
- <glob pattern="*.st"/>
- <glob pattern="*.msa.gz"/>
- <glob pattern="*.msa"/>
- <generic-icon name="hatari-icon" />
- </mime-type>
- <mime-type type="application/x-atari-st-executable">
+ <mime-type type="application/x-st-disk-image">
+ <sub-class-of type="application/octet-stream"/>
+ <comment>ST disk image</comment>
+ <glob pattern="*.st"/>
+ <glob pattern="*.st.gz"/>
+ </mime-type>
+ <mime-type type="application/vnd.msa-disk-image">
+ <sub-class-of type="application/octet-stream"/>
+ <comment>Magic Shadow Archiver disk image</comment>
+ <glob pattern="*.msa"/>
+ <glob pattern="*.msa.gz"/>
+ <magic priority="90">
+ <match type="big16" offset="0" value="0x0E0F"/>
+ </magic>
+ </mime-type>
+ <mime-type type="application/vnd.fastcopy-disk-image">
+ <sub-class-of type="application/octet-stream"/>
+ <comment>FastCopy DIM disk image</comment>
+ <glob pattern="*.dim"/>
+ <glob pattern="*.dim.gz"/>
+ <magic priority="90">
+ <match type="big16" offset="0" value="0x4242"/>
+ </magic>
+ </mime-type>
+ <mime-type type="application/x-stx-disk-image">
+ <sub-class-of type="application/octet-stream"/>
+ <comment>Pasti STX disk image</comment>
+ <glob pattern="*.stx"/>
+ <glob pattern="*.stx.gz"/>
+ <magic priority="90">
+ <match type="big32" offset="0" value="0x52535900"/>
+ </magic>
+ </mime-type>
+ <mime-type type="application/x-st-executable">
<comment>Atari ST Executable</comment>
<glob pattern="*.prg"/>
<glob pattern="*.ttp"/>
- <generic-icon name="hatari-icon" />
</mime-type>
</mime-info>
diff --git a/games/hatari/hatariui.desktop b/games/hatari/hatariui.desktop
index d7003de04f..e283900158 100644
--- a/games/hatari/hatariui.desktop
+++ b/games/hatari/hatariui.desktop
@@ -6,7 +6,7 @@ Exec=hatariui %f
Icon=hatari-icon
Categories=Game;Emulator;
Actions=Boot;
-MimeType=application/x-atari-st-disk-image;application/x-atari-st-executable;
+MimeType=application/x-st-disk-image;application/x-st-executable;application/vnd.msa-disk-image;application/vnd.fastcopy-disk-image;application/x-stx-disk-image;
[Desktop Action Boot]
Name=Boot
diff --git a/games/hatari/slack-desc b/games/hatari/slack-desc
index d4b49ea953..378aaca07e 100644
--- a/games/hatari/slack-desc
+++ b/games/hatari/slack-desc
@@ -15,5 +15,5 @@ hatari:
hatari: Hatari tries to emulate the hardware of a ST as close as possible so
hatari: that it is able to run most of the old ST games and demos.
hatari:
-hatari: Homepage: http://sourceforge.net/projects/hatari/
+hatari: This package was built with SDL-@WITHSDL@ support.
hatari: