commit:     ec46ba80a028ff94d528be8c6c61294b75015287
Author:     Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com>
AuthorDate: Sat Aug 11 23:03:32 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Aug 12 17:18:03 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec46ba80

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(+)

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 00000000000..cac630f66f4
--- /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 00000000000..7bb3815e13a
--- /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
+}

Reply via email to