summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzamat H. Hackimov <azamat.hackimov@gmail.com>2018-08-12 02:03:32 +0300
committerMichał Górny <mgorny@gentoo.org>2018-08-12 19:18:03 +0200
commitec46ba80a028ff94d528be8c6c61294b75015287 (patch)
treef8e2c9fc00cb408b90d9136b9e53755e41c4f6d1 /games-emulation
parentdev-libs/spsdeclib: install headers (diff)
downloadgentoo-ec46ba80a028ff94d528be8c6c61294b75015287.tar.gz
gentoo-ec46ba80a028ff94d528be8c6c61294b75015287.tar.bz2
gentoo-ec46ba80a028ff94d528be8c6c61294b75015287.zip
games-emulation/hatari: fixes build with new caps
Using dev-libs/spsdeclib instead games-emulation/caps, minor fixes in ebuild. Closes: https://github.com/gentoo/gentoo/pull/9370 Package-Manager: Portage-2.3.40, Repoman-2.3.9
Diffstat (limited to 'games-emulation')
-rw-r--r--games-emulation/hatari/files/hatari-2.1.0_caps5_files.patch147
-rw-r--r--games-emulation/hatari/hatari-2.1.0-r1.ebuild79
2 files changed, 226 insertions, 0 deletions
diff --git a/games-emulation/hatari/files/hatari-2.1.0_caps5_files.patch b/games-emulation/hatari/files/hatari-2.1.0_caps5_files.patch
new file mode 100644
index 000000000000..cac630f66f44
--- /dev/null
+++ b/games-emulation/hatari/files/hatari-2.1.0_caps5_files.patch
@@ -0,0 +1,147 @@
+diff -Nuar hatari-2.1.0-orig/cmake/FindCapsImage.cmake hatari-2.1.0/cmake/FindCapsImage.cmake
+--- hatari-2.1.0-orig/cmake/FindCapsImage.cmake 2018-07-28 20:32:59.164780571 +0300
++++ hatari-2.1.0/cmake/FindCapsImage.cmake 2018-07-28 20:33:16.130781607 +0300
+@@ -1,22 +1,18 @@
+-
+ IF (CAPSIMAGE_INCLUDE_DIR)
+- # Already in cache, be silent
+- SET(CAPSIMAGE_FIND_QUIETLY TRUE)
++ # Already in cache, be silent
++ SET(CAPSIMAGE_FIND_QUIETLY TRUE)
+ ENDIF (CAPSIMAGE_INCLUDE_DIR)
+
+-
+-# Choose the library version to use : 4 or 5
+-SET(CAPSIMAGE_VERSION 5)
+-
+-
+-if(CAPSIMAGE_VERSION STREQUAL 4)
+- SET(CAPSIMAGE_DIR caps)
+- FIND_PATH(CAPSIMAGE_INCLUDE_DIR ${CAPSIMAGE_DIR}/capsimage.h)
++if(ENABLE_CAPSIMAGE5)
++ SET(CAPSIMAGE_VERSION 5)
++ FIND_PATH(CAPSIMAGE_INCLUDE_DIR NAMES CapsAPI.h PATH_SUFFIXES caps5)
+ else()
+- SET(CAPSIMAGE_DIR caps5)
+- FIND_PATH(CAPSIMAGE_INCLUDE_DIR ${CAPSIMAGE_DIR}/CapsAPI.h)
++ SET(CAPSIMAGE_VERSION 4)
++ FIND_PATH(CAPSIMAGE_INCLUDE_DIR NAMES capsimage.h PATH_SUFFIXES caps)
+ endif()
+
++message(${CAPSIMAGE_INCLUDE_DIR})
++
+ if(WIN32)
+ FIND_LIBRARY(CAPSIMAGE_LIBRARY NAMES capsimg PATH_SUFFIXES ${CAPSIMAGE_DIR} )
+ else()
+diff -Nuar hatari-2.1.0-orig/src/CMakeLists.txt hatari-2.1.0/src/CMakeLists.txt
+--- hatari-2.1.0-orig/src/CMakeLists.txt 2018-07-28 20:32:59.152780571 +0300
++++ hatari-2.1.0/src/CMakeLists.txt 2018-07-28 20:33:16.131781607 +0300
+@@ -55,6 +55,10 @@
+ include_directories(${PNG_INCLUDE_DIR})
+ endif(PNG_FOUND)
+
++if(CAPSIMAGE_FOUND)
++ include_directories(${CAPSIMAGE_INCLUDE_DIR})
++endif(CAPSIMAGE_FOUND)
++
+ if(X11_FOUND)
+ include_directories(${X11_INCLUDE_DIR})
+ endif(X11_FOUND)
+diff -Nuar hatari-2.1.0-orig/src/floppy_ipf.c hatari-2.1.0/src/floppy_ipf.c
+--- hatari-2.1.0-orig/src/floppy_ipf.c 2018-07-28 20:32:59.152780571 +0300
++++ hatari-2.1.0/src/floppy_ipf.c 2018-07-28 20:34:32.782786288 +0300
+@@ -30,9 +30,9 @@
+
+ #ifdef HAVE_CAPSIMAGE
+ #if CAPSIMAGE_VERSION == 5
+-#include <caps5/CapsLibAll.h>
++#include <CapsLibAll.h>
+ #else
+-#include <caps/fdc.h>
++#include <fdc.h>
+ #define CAPS_LIB_RELEASE 4
+ #define CAPS_LIB_REVISION 2
+ #endif
+@@ -61,8 +61,8 @@
+
+ struct CapsFdc Fdc; /* Fdc state */
+ struct CapsDrive Drive[ MAX_FLOPPYDRIVES ]; /* Physical drives */
+- CapsLong CapsImage[ MAX_FLOPPYDRIVES ]; /* Image Id or -1 if drive empty */
+- CapsLong CapsImageType[ MAX_FLOPPYDRIVES ]; /* ImageType or -1 if not known */
++ Sint32 CapsImage[ MAX_FLOPPYDRIVES ]; /* Image Id or -1 if drive empty */
++ Sint32 CapsImageType[ MAX_FLOPPYDRIVES ]; /* ImageType or -1 if not known */
+
+ int Rev_Track[ MAX_FLOPPYDRIVES ]; /* Needed to handle CAPSSetRevolution for type II/III commands */
+ int Rev_Side[ MAX_FLOPPYDRIVES ];
+@@ -83,9 +83,9 @@
+ static char *IPF_FilenameFindTrackSide (char *FileName);
+ static bool IPF_Insert_RawStreamImage ( int Drive );
+
+-static void IPF_CallBack_Trk ( struct CapsFdc *pc , CapsULong State );
+-static void IPF_CallBack_Irq ( struct CapsFdc *pc , CapsULong State );
+-static void IPF_CallBack_Drq ( struct CapsFdc *pc , CapsULong State );
++static void IPF_CallBack_Trk ( struct CapsFdc *pc , Uint32 State );
++static void IPF_CallBack_Irq ( struct CapsFdc *pc , Uint32 State );
++static void IPF_CallBack_Drq ( struct CapsFdc *pc , Uint32 State );
+ static void IPF_Drive_Update_Enable_Side ( void );
+ static void IPF_FDC_LogCommand ( Uint8 Command );
+ #endif
+@@ -419,8 +419,8 @@
+ return false;
+
+ #else
+- CapsLong ImageId;
+- CapsLong ImageType;
++ Sint32 ImageId;
++ Sint32 ImageType;
+
+ ImageId = CAPSAddImage();
+ if ( ImageId < 0 )
+@@ -470,7 +470,7 @@
+ ImageType = -1;
+ #endif
+
+- if ( CAPSLockImageMemory ( ImageId , pImageBuffer , (CapsULong)ImageSize , DI_LOCK_MEMREF ) == imgeOk )
++ if ( CAPSLockImageMemory ( ImageId , pImageBuffer , (Uint32)ImageSize , DI_LOCK_MEMREF ) == imgeOk )
+ {
+ struct CapsImageInfo cii;
+ int i;
+@@ -703,7 +703,7 @@
+ * We need to update the track data by calling CAPSLockTrack
+ */
+ #ifdef HAVE_CAPSIMAGE
+-static void IPF_CallBack_Trk ( struct CapsFdc *pc , CapsULong State )
++static void IPF_CallBack_Trk ( struct CapsFdc *pc , Uint32 State )
+ {
+ int Drive = State; /* State is the drive number in that case */
+ struct CapsDrive *pd = pc->drive+Drive; /* Current drive where the track change occurred */
+@@ -732,7 +732,7 @@
+ * Callback function used when the FDC change the IRQ signal
+ */
+ #ifdef HAVE_CAPSIMAGE
+-static void IPF_CallBack_Irq ( struct CapsFdc *pc , CapsULong State )
++static void IPF_CallBack_Irq ( struct CapsFdc *pc , Uint32 State )
+ {
+ LOG_TRACE(TRACE_FDC, "fdc ipf callback irq state=0x%x VBL=%d HBL=%d\n" , (int)State , nVBLs , nHBL );
+
+@@ -751,7 +751,7 @@
+ * -> copy the byte to/from the DMA's FIFO if it's a read or a write to the disk
+ */
+ #ifdef HAVE_CAPSIMAGE
+-static void IPF_CallBack_Drq ( struct CapsFdc *pc , CapsULong State )
++static void IPF_CallBack_Drq ( struct CapsFdc *pc , Uint32 State )
+ {
+ Uint8 Byte;
+
+diff -Nuar hatari-2.1.0-orig/src/uae-cpu/newcpu.c hatari-2.1.0/src/uae-cpu/newcpu.c
+--- hatari-2.1.0-orig/src/uae-cpu/newcpu.c 2018-07-28 20:32:59.158780571 +0300
++++ hatari-2.1.0/src/uae-cpu/newcpu.c 2018-07-28 20:33:16.132781607 +0300
+@@ -167,7 +167,7 @@
+
+ #ifdef HAVE_CAPSIMAGE
+ #if CAPSIMAGE_VERSION == 5
+-#include <caps5/CapsLibAll.h>
++#include <CapsLibAll.h>
+ #endif
+ #endif
+
diff --git a/games-emulation/hatari/hatari-2.1.0-r1.ebuild b/games-emulation/hatari/hatari-2.1.0-r1.ebuild
new file mode 100644
index 000000000000..7bb3815e13af
--- /dev/null
+++ b/games-emulation/hatari/hatari-2.1.0-r1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+inherit cmake-utils python-single-r1 readme.gentoo-r1
+
+DESCRIPTION="Atari ST emulator"
+HOMEPAGE="http://hatari.tuxfamily.org/"
+SRC_URI="http://download.tuxfamily.org/hatari/${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+sdl2"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ >=dev-libs/spsdeclib-5.1-r1
+ sdl2? ( media-libs/libsdl2[X,sound,video] )
+ !sdl2? ( media-libs/libsdl[X,sound,video] )
+ media-libs/portaudio
+ media-libs/portmidi
+ sys-libs/readline:0=
+ media-libs/libpng:0=
+ sys-libs/zlib:0="
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+PDEPEND="dev-python/pygtk[${PYTHON_USEDEP}]
+ >=games-emulation/emutos-0.9.9.1"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+You need a TOS ROM to run hatari. EmuTOS, a free TOS implementation,
+has been installed in /usr/lib*/hatari with a .img extension (there
+are several from which to choose).
+Another option is to go to http://www.atari.st/ and get a real TOS:
+http://www.atari.st/
+The first time you run hatari, you should configure it to find the
+TOS you prefer to use. Be sure to save your settings.
+"
+
+PATCHES=( "${FILESDIR}/${P}_caps5_files.patch" )
+DOCS="readme.txt doc/*.txt"
+HTML_DOCS="doc/"
+
+src_prepare() {
+ cmake-utils_src_prepare
+
+ sed -i -e '/Encoding/d' ./python-ui/hatariui.desktop || die
+ sed -i -e "s/python/${EPYTHON}/" tools/atari-hd-image.sh || die
+ sed -i -e "s#@DOCDIR@#/usr/share/doc/${PF}/html/#" python-ui/uihelpers.py || die
+}
+
+src_configure() {
+ mycmakeargs=(
+ "-DDOCDIR=/usr/share/doc/${PF}"
+ "-DENABLE_SDL2=$(usex sdl2)"
+ "-DENABLE_CAPSIMAGE5=ON"
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+ python_fix_shebang "${ED%/}"/usr/share/hatari/{hatariui,hconsole}/
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ readme.gentoo_print_elog
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+}