summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--games/hatari/README22
-rw-r--r--games/hatari/doinst.sh9
-rw-r--r--games/hatari/hatari.SlackBuild55
-rw-r--r--games/hatari/hatari.info6
-rw-r--r--games/hatari/hatari.xml17
-rw-r--r--games/hatari/hatariui.desktop13
6 files changed, 78 insertions, 44 deletions
diff --git a/games/hatari/README b/games/hatari/README
index f221a6c6da..d6f981f135 100644
--- a/games/hatari/README
+++ b/games/hatari/README
@@ -9,21 +9,9 @@ environment for running GEM applications, Hatari tries to emulate the
hardware of a ST as close as possible so that it is able to run most
of the old ST games and demos.
-Optional dependency: if portaudio is installed, hatari will be built
-with it, which enables emulated Falcon microphone support.
+Recommended dependency: hatari_tos_roms. hatari includes a free
+replacement called EmuTOS, but most users will want to install the real
+ROM images. Most ST software won't work without hatari_tos_roms.
-Before you can actually run the emulator, you also need a TOS image
-file. TOS is the built-in operating system of the Atari 16/32 bit
-computers. Since it is not possible to ship one of these image files
-with Hatari, you either have to create your own image from your Atari
-or you have to use EmuTOS, a free TOS replacement.
-
-It's also possible to download the ROM images from the net. See
-the package hatari_tos_roms. If you're going to install the ROMs,
-it's easiest to install hatari first, then hatari_tos_roms (otherwise,
-you'll have to manually symlink /usr/share/hatari/tos.img to whichever
-ROM you want to use).
-
-EmuTOS is included in this package, so you can run at least some ST
-applications without installing the real ROMs, but not many programs
-work with EmuTOS (especially not games).
+Optional dependency: portaudio. Only used for emulated Falcon microphone
+support. Autotetected by the SlackBuild.
diff --git a/games/hatari/doinst.sh b/games/hatari/doinst.sh
index 3e5691a052..ae52932a11 100644
--- a/games/hatari/doinst.sh
+++ b/games/hatari/doinst.sh
@@ -1,3 +1,7 @@
+if [ -x /usr/bin/update-mime-database ]; then
+ /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
+fi
+
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi
@@ -7,3 +11,8 @@ if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
/usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1
fi
fi
+
+# if there's no tos.img symlink, take over with emutos.img
+if [ ! -r usr/share/hatari/tos.img ]; then
+ ( cd usr/share/hatari ; ln -sf emutos.img tos.img )
+fi
diff --git a/games/hatari/hatari.SlackBuild b/games/hatari/hatari.SlackBuild
index 4493887f1b..2b073f6fe5 100644
--- a/games/hatari/hatari.SlackBuild
+++ b/games/hatari/hatari.SlackBuild
@@ -6,8 +6,16 @@
# Licensed under the WTFPL. See http://sam.zoy.org/wtfpl/ for details.
+# 20140825 bkw:
+# - updated for v1.8.0
+# - install docs/manpages to right places, instead of moving after the fact
+# - get rid of the need for a symlink /usr/doc/hatari
+# - only symlink emutos.img -> tos.img if no link already exists, so
+# reinstalling the package won't reset the default ROM.
+# - add mime type and auto-associate ST disk images and executables.
+
PRGNAM=hatari
-VERSION=${VERSION-1.7.0}
+VERSION=${VERSION-1.8.0}
BUILD=${BUILD-1}
TAG=${TAG-_SBo}
@@ -37,45 +45,44 @@ fi
set -e
rm -rf $PKG $TMP/$PRGNAM-$VERSION
-mkdir -p $PKG $PKG/install $PKG/etc/$PRGNAM
-
-# configure script is really a wrapper for cmake, doesn't support
-# --libdir, --mandir, --docdir. We'll just move everything where it
-# goes after the 'make install'. (If there were shared libs to deal
-# with, this likely wouldn't be good enough)
+mkdir -p $PKG $PKG/etc/$PRGNAM
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.
+sed -i \
+ -e 's,share/man/man1,man/man1,' \
+ -e "s,share/doc/$PRGNAM,doc/$PRGNAM-$VERSION," \
+ CMakeLists.txt
+
+# 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
make
make install/strip DESTDIR=$PKG
-# amazingly, the man pages are already gzipped (but in the wrong place)
-mv $PKG/usr/share/man $PKG/usr/man
-
-# Also, the docs are in the wrong place:
-WRONGDOCDIR=$PKG/usr/share/doc/$PRGNAM
DOCDIR=$PKG/usr/doc/$PRGNAM-$VERSION
-
-mkdir -p $DOCDIR
-mv $WRONGDOCDIR/* $DOCDIR
-rmdir $WRONGDOCDIR
-
-# However, the doc location is hardcoded in the UI. This works
-# because /usr/share/doc is really a symlink to /usr/doc on Slackware.
-ln -s $PRGNAM-$VERSION $PKG/usr/doc/$PRGNAM
-
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 $DOCDIR
-# Make sure hatariui shows up in desktop menu:
-echo 'Categories=Game;Emulator;' >> $PKG/usr/share/applications/${PRGNAM}ui.desktop
+# 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.
+mkdir -p $PKG/usr/share/mime/packages
+cat $CWD/$PRGNAM.xml > $PKG/usr/share/mime/packages/$PRGNAM.xml
-( cd $PKG/usr/share/$PRGNAM && mv tos.img emutos.img && ln -s emutos.img tos.img )
+# 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
diff --git a/games/hatari/hatari.info b/games/hatari/hatari.info
index 3053e4c625..c3708e1e31 100644
--- a/games/hatari/hatari.info
+++ b/games/hatari/hatari.info
@@ -1,8 +1,8 @@
PRGNAM="hatari"
-VERSION="1.7.0"
+VERSION="1.8.0"
HOMEPAGE="http://hatari.tuxfamily.org/"
-DOWNLOAD="http://download.tuxfamily.org/hatari/1.7.0/hatari-1.7.0.tar.bz2"
-MD5SUM="67b16ec0a0994aa6a935b193254118e0"
+DOWNLOAD="http://download.tuxfamily.org/hatari/1.8.0/hatari-1.8.0.tar.bz2"
+MD5SUM="f78cf673debbbe2d523415ab605550e1"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/hatari/hatari.xml b/games/hatari/hatari.xml
new file mode 100644
index 0000000000..15660d0d73
--- /dev/null
+++ b/games/hatari/hatari.xml
@@ -0,0 +1,17 @@
+<?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">
+ <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
new file mode 100644
index 0000000000..d7003de04f
--- /dev/null
+++ b/games/hatari/hatariui.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Hatari UI
+Exec=hatariui %f
+Icon=hatari-icon
+Categories=Game;Emulator;
+Actions=Boot;
+MimeType=application/x-atari-st-disk-image;application/x-atari-st-executable;
+
+[Desktop Action Boot]
+Name=Boot
+Exec=hatariui %f