From ec46ba80a028ff94d528be8c6c61294b75015287 Mon Sep 17 00:00:00 2001 From: "Azamat H. Hackimov" Date: Sun, 12 Aug 2018 02:03:32 +0300 Subject: 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 --- .../hatari/files/hatari-2.1.0_caps5_files.patch | 147 +++++++++++++++++++++ games-emulation/hatari/hatari-2.1.0-r1.ebuild | 79 +++++++++++ 2 files changed, 226 insertions(+) create mode 100644 games-emulation/hatari/files/hatari-2.1.0_caps5_files.patch create mode 100644 games-emulation/hatari/hatari-2.1.0-r1.ebuild (limited to 'games-emulation/hatari') 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 ++#include + #else +-#include ++#include + #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 ++#include + #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 +} -- cgit v1.2.3-65-gdbad