public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "James Le Cuirot" <chewi@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: games-emulation/hatari/files/, games-emulation/hatari/
Date: Sun, 10 Nov 2019 21:39:49 +0000 (UTC)	[thread overview]
Message-ID: <1573421967.95918849608a85cb055a0736754981ff9adf5d1a.chewi@gentoo> (raw)

commit:     95918849608a85cb055a0736754981ff9adf5d1a
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 10 21:37:12 2019 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sun Nov 10 21:39:27 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95918849

games-emulation/hatari: Bump to 2.2.1, EAPI 7, lots of improvements

It turns out most of the dependencies are optional.

Closes: https://bugs.gentoo.org/689538
Package-Manager: Portage-2.3.79, Repoman-2.3.17
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-emulation/hatari/Manifest                    |  1 +
 .../hatari/files/hatari-2.2.1-default-rom.patch    | 16 +++++
 .../hatari/files/hatari-2.2.1-joystick.patch       | 59 ++++++++++++++++
 games-emulation/hatari/hatari-2.2.1.ebuild         | 80 ++++++++++++++++++++++
 games-emulation/hatari/metadata.xml                |  3 +
 5 files changed, 159 insertions(+)

diff --git a/games-emulation/hatari/Manifest b/games-emulation/hatari/Manifest
index e061a3037e6..2d2d4017ca7 100644
--- a/games-emulation/hatari/Manifest
+++ b/games-emulation/hatari/Manifest
@@ -1 +1,2 @@
 DIST hatari-2.1.0.tar.bz2 4072778 BLAKE2B 934ab28e799d0d13c26c291005513511367eb2ddbeda0f9756c19f10fa9e6bb8e10451057fa7e0b49a30e3f562eb5f327057d324b2a92e09b1115f63132dca97 SHA512 d1fbf6e60e2df2c43d070bee6a9c1dc93c36a8ea7f75bbf2a67790840952661cee136ebccd6b2ed523ef9b7b56391e058384f2e3f46acb609bb362cac05b9753
+DIST hatari-2.2.1.tar.bz2 4162798 BLAKE2B 51938a649957779652b0debf7f867b2abe2d54fd3bb31086542f9f5970d01a120455e4381a9cb173724fbc7c45359d4009377bfe99038b338142fa5b82723533 SHA512 0e4c148a355a53c9cf79bdd28e5d7bb5f3389c780576017c6ebe2b69465d67522f373945f0e51681120ece24f5f08442265515486d2d7df7a02d9cd94cc44f1e

diff --git a/games-emulation/hatari/files/hatari-2.2.1-default-rom.patch b/games-emulation/hatari/files/hatari-2.2.1-default-rom.patch
new file mode 100644
index 00000000000..c42f67f733c
--- /dev/null
+++ b/games-emulation/hatari/files/hatari-2.2.1-default-rom.patch
@@ -0,0 +1,16 @@
+Use etos512k.img from the emutos package rather than tos.img.
+
+diff -Naur a/src/configuration.c b/src/configuration.c
+--- a/src/configuration.c	2019-02-08 08:30:11.000000000 +0000
++++ b/src/configuration.c	2019-11-10 21:19:31.712605716 +0000
+@@ -841,8 +841,8 @@
+ 	ConfigureParams.Sound.YmVolumeMixing = YM_TABLE_MIXING;
+ 
+ 	/* Set defaults for Rom */
+-	sprintf(ConfigureParams.Rom.szTosImageFileName, "%s%ctos.img",
+-	        Paths_GetDataDir(), PATHSEP);
++	sprintf(ConfigureParams.Rom.szTosImageFileName, "%s%c..%cemutos%cetos512k.img",
++	        Paths_GetDataDir(), PATHSEP, PATHSEP, PATHSEP);
+ 	ConfigureParams.Rom.bPatchTos = true;
+ 	strcpy(ConfigureParams.Rom.szCartridgeImageFileName, "");
+ 

diff --git a/games-emulation/hatari/files/hatari-2.2.1-joystick.patch b/games-emulation/hatari/files/hatari-2.2.1-joystick.patch
new file mode 100644
index 00000000000..193bb7206c3
--- /dev/null
+++ b/games-emulation/hatari/files/hatari-2.2.1-joystick.patch
@@ -0,0 +1,59 @@
+https://bugs.gentoo.org/689538
+
+diff -ruN hatari-2.1.0.old/src/gui-sdl/sdlgui.c hatari-2.1.0/src/gui-sdl/sdlgui.c
+--- hatari-2.1.0.old/src/gui-sdl/sdlgui.c	2018-02-07 18:33:56.000000000 +0000
++++ hatari-2.1.0/src/gui-sdl/sdlgui.c	2019-07-08 23:55:50.481270799 +0100
+@@ -1329,12 +1329,28 @@
+ 				}
+ 				break;
+ 
++			 case SDL_JOYHATMOTION:
++				if (sdlEvent.jhat.value & SDL_HAT_LEFT)
++					retbutton = SDLGui_HandleShortcut(dlg, SG_SHORTCUT_LEFT);
++				else if (sdlEvent.jhat.value & SDL_HAT_RIGHT)
++					retbutton = SDLGui_HandleShortcut(dlg, SG_SHORTCUT_RIGHT);
++				if (sdlEvent.jhat.value & SDL_HAT_UP)
++				{
++					SDLGui_RemoveFocus(dlg, focused);
++					focused = SDLGui_FocusNext(dlg, focused, -1);
++				}
++				else if (sdlEvent.jhat.value & SDL_HAT_DOWN)
++				{
++					SDLGui_RemoveFocus(dlg, focused);
++					focused = SDLGui_FocusNext(dlg, focused, +1);
++				}
++				break;
++
+ 			 case SDL_JOYBUTTONDOWN:
+ 				retbutton = SDLGui_HandleSelection(dlg, focused, focused);
+ 				break;
+ 
+ 			 case SDL_JOYBALLMOTION:
+-			 case SDL_JOYHATMOTION:
+ 			 case SDL_MOUSEMOTION:
+ 				break;
+ 
+diff -ruN hatari-2.1.0.old/src/joy.c hatari-2.1.0/src/joy.c
+--- hatari-2.1.0.old/src/joy.c	2018-02-07 18:33:56.000000000 +0000
++++ hatari-2.1.0/src/joy.c	2019-07-09 14:46:36.502410790 +0100
+@@ -199,9 +199,20 @@
+  */
+ static bool Joy_ReadJoystick(int nSdlJoyID, JOYREADING *pJoyReading)
+ {
++	unsigned hat = SDL_JoystickGetHat(sdlJoystick[nSdlJoyID], 0);
++
+ 	/* Joystick is OK, read position from the configured joystick axis */
+ 	pJoyReading->XPos = SDL_JoystickGetAxis(sdlJoystick[nSdlJoyID], pJoyReading->XAxisID);
+ 	pJoyReading->YPos = SDL_JoystickGetAxis(sdlJoystick[nSdlJoyID], pJoyReading->YAxisID);
++	/* Similarly to other emulators that support hats, override axis readings with hats */
++	if (hat & SDL_HAT_LEFT)
++		pJoyReading->XPos = -32768;
++	if (hat & SDL_HAT_RIGHT)
++		pJoyReading->XPos = 32767;
++	if (hat & SDL_HAT_UP)
++		pJoyReading->YPos = -32768;
++	if (hat & SDL_HAT_DOWN)
++		pJoyReading->YPos = 32767;
+ 	/* Sets bit #0 if button #1 is pressed: */
+ 	pJoyReading->Buttons = SDL_JoystickGetButton(sdlJoystick[nSdlJoyID], 0);
+ 	/* Sets bit #1 if button #2 is pressed: */

diff --git a/games-emulation/hatari/hatari-2.2.1.ebuild b/games-emulation/hatari/hatari-2.2.1.ebuild
new file mode 100644
index 00000000000..a8f84107c83
--- /dev/null
+++ b/games-emulation/hatari/hatari-2.2.1.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_{6,7}} )
+inherit cmake-utils python-single-r1 xdg
+
+DESCRIPTION="Atari ST emulator"
+HOMEPAGE="https://hatari.tuxfamily.org/"
+SRC_URI="https://download.tuxfamily.org/hatari/${PV}/${P}.tar.bz2"
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="capsimage microphone png portmidi readline +sdl2 udev zlib"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="
+	${PYTHON_DEPS}
+	capsimage? ( >=dev-libs/spsdeclib-5.1-r1 )
+	microphone? ( media-libs/portaudio )
+	png? ( media-libs/libpng:0= )
+	portmidi? ( media-libs/portmidi )
+	readline? ( sys-libs/readline:0= )
+	sdl2? ( media-libs/libsdl2[sound,video,X] )
+	!sdl2? ( media-libs/libsdl[sound,video,X] )
+	udev? ( virtual/udev )
+	zlib? ( sys-libs/zlib )
+"
+
+RDEPEND="
+	${DEPEND}
+	dev-python/pygobject:3[${PYTHON_USEDEP}]
+	>=games-emulation/emutos-0.9.9.1
+"
+
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-2.2.1-default-rom.patch
+	"${FILESDIR}"/${PN}-2.2.1-joystick.patch
+)
+
+DOCS=(
+	readme.txt
+	doc/{changelog,coding,scsi-driver,thanks,video-recording}.txt
+)
+
+src_prepare() {
+	xdg_environment_reset
+	cmake-utils_src_prepare
+
+	sed -i "s/\.1\.gz\b/.1/g;T;s/gzip[^\$]*/cat /g" {*/,}*/CMakeLists.txt || die
+	sed -i "s:\"doc\" + sep + \"hatari\":\"doc/${PF}\":" python-ui/uihelpers.py || die
+	sed -i "s/python/${EPYTHON}/" tools/atari-hd-image.sh || die
+
+	# Use emutos package rather than bundled ROM.
+	rm src/tos.img || die
+}
+
+src_configure() {
+	mycmakeargs=(
+		-DBUILD_SHARED_LIBS=OFF
+		-DDOCDIR="${EPREFIX}"/usr/share/doc/${PF}
+		-DENABLE_SDL2=$(usex sdl2)
+		-DCMAKE_DISABLE_FIND_PACKAGE_CapsImage=$(usex !capsimage)
+		-DCMAKE_DISABLE_FIND_PACKAGE_PortAudio=$(usex !microphone)
+		-DCMAKE_DISABLE_FIND_PACKAGE_PortMidi=$(usex !portmidi)
+		-DCMAKE_DISABLE_FIND_PACKAGE_PNG=$(usex !png)
+		-DCMAKE_DISABLE_FIND_PACKAGE_Readline=$(usex !readline)
+		-DCMAKE_DISABLE_FIND_PACKAGE_Udev=$(usex !udev)
+		-DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=$(usex !zlib)
+	)
+	cmake-utils_src_configure
+}
+
+src_install() {
+	cmake-utils_src_install
+	python_fix_shebang "${ED}"/usr/share/${PN}/
+}

diff --git a/games-emulation/hatari/metadata.xml b/games-emulation/hatari/metadata.xml
index d4511e749d4..f17253687ee 100644
--- a/games-emulation/hatari/metadata.xml
+++ b/games-emulation/hatari/metadata.xml
@@ -6,6 +6,9 @@
 	<name>Gentoo Games Project</name>
 </maintainer>
 <use>
+	<flag name="capsimage">Use <pkg>dev-libs/spsdeclib</pkg> to read .IPF, .RAW, and .CTR disk images</flag>
+	<flag name="microphone">Use <pkg>media-libs/portaudio</pkg> for Falcon microphone handling</flag>
+	<flag name="portmidi">Use <pkg>media-libs/portmidi</pkg> as an alternative MIDI backend</flag>
 	<flag name="sdl2">Use libsdl2 instead of libsdl</flag>
 </use>
 </pkgmetadata>


             reply	other threads:[~2019-11-10 21:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-10 21:39 James Le Cuirot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-03-14  6:06 [gentoo-commits] repo/gentoo:master commit in: games-emulation/hatari/files/, games-emulation/hatari/ Sam James
2021-06-02  2:38 Ionen Wolkens
2018-07-13  9:27 Tony Vroon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1573421967.95918849608a85cb055a0736754981ff9adf5d1a.chewi@gentoo \
    --to=chewi@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox