commit:     a7478e660bb64d23fb8790cd93567f898ff0d314
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Jun  1 11:59:05 2021 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 02:22:32 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7478e66

games-emulation/desmume: add 0.9.11_p20210409 snapshot

Upstream labels their stable 0.9.11 release as '(do not use)'
and is missing 6 years worth of changes, they instead suggest
to use current git autobuilds.

Current hasn't changed in some time and should be a fair
snapshot (not that it isn't without some issues, included patch
to fix cli option issues with gtk+:3 port).

Removes gtk+:2 and migrates to meson / gtk+:3 / libsdl2.

USE=gui enabled by default because the cli version is very
limited and more useful for debugging.

Closes: https://bugs.gentoo.org/701138
Closes: https://github.com/gentoo/gentoo/pull/20947
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 games-emulation/desmume/Manifest                   |  1 +
 .../desmume/desmume-0.9.11_p20210409.ebuild        | 50 ++++++++++++
 .../desmume-0.9.11_p20210409-fix-gtk-cliopts.patch | 91 ++++++++++++++++++++++
 games-emulation/desmume/metadata.xml               |  5 ++
 4 files changed, 147 insertions(+)

diff --git a/games-emulation/desmume/Manifest b/games-emulation/desmume/Manifest
index bb91d3bfd1d..a715a37faf4 100644
--- a/games-emulation/desmume/Manifest
+++ b/games-emulation/desmume/Manifest
@@ -1 +1,2 @@
 DIST desmume-0.9.11.tar.gz 5359305 BLAKE2B 
31764dcb2d0facf32eddd5c66f40e2268f8afd5c2562bf246b93bb60c191d7888587991732014dee11417016515a4367bda9acf79f699703754aa904dcaeeb01
 SHA512 
160cb6ec0ede04ad1fbddde2b7b04aa41fa464c8338d7eb9d7536196a82d8d716889b40be4fb831a22e3fe8532b947f7f0b41311601b6842be2516dff7cae46c
+DIST desmume-0.9.11_p20210409.tar.gz 13157043 BLAKE2B 
f8e582005555357cb632478ba8d2730e51a5cb8dbbee05d4af138df19a015ced6cff721fb53f87224774aed8287f91a01da5600f5548189fd0e264e5b3037fd8
 SHA512 
1897b3b35c7e997876ff53a36849a39b85bd49c737dab61f68c376e3cb294486f9edded98924275e8ee91e5b008e9d3814987edaab7306217c17dbc094f69348

diff --git a/games-emulation/desmume/desmume-0.9.11_p20210409.ebuild 
b/games-emulation/desmume/desmume-0.9.11_p20210409.ebuild
new file mode 100644
index 00000000000..752de42b7cb
--- /dev/null
+++ b/games-emulation/desmume/desmume-0.9.11_p20210409.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson xdg
+
+MY_COMMIT="e8f619c44a23ebba06be1fb4442483d481477b81"
+
+DESCRIPTION="Nintendo DS emulator"
+HOMEPAGE="https://desmume.org/";
+SRC_URI="https://github.com/TASVideos/desmume/archive/${MY_COMMIT}.tar.gz -> 
${P}.tar.gz"
+S="${WORKDIR}/${PN}-${MY_COMMIT}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gdb +gui openal wifi"
+
+RDEPEND="
+       dev-libs/glib:2
+       media-libs/alsa-lib
+       media-libs/libsdl2[X,opengl,sound,video]
+       media-libs/libsoundtouch:=
+       net-libs/libpcap
+       sys-libs/zlib:=
+       virtual/opengl
+       x11-libs/agg
+       x11-libs/libX11
+       gui? ( x11-libs/gtk+:3 )
+       openal? ( media-libs/openal )"
+DEPEND="
+       ${RDEPEND}
+       x11-base/xorg-proto"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-fix-gtk-cliopts.patch
+)
+DOCS=( ${PN}/{AUTHORS,ChangeLog,README,README.LIN,doc/.} )
+
+src_configure() {
+       local EMESON_SOURCE="${S}/${PN}/src/frontend/posix"
+       local emesonargs=(
+               $(meson_use gdb gdb-stub)
+               $(meson_use gui frontend-gtk)
+               $(meson_use openal)
+               $(meson_use wifi)
+       )
+       meson_src_configure
+}

diff --git 
a/games-emulation/desmume/files/desmume-0.9.11_p20210409-fix-gtk-cliopts.patch 
b/games-emulation/desmume/files/desmume-0.9.11_p20210409-fix-gtk-cliopts.patch
new file mode 100644
index 00000000000..f773385748a
--- /dev/null
+++ 
b/games-emulation/desmume/files/desmume-0.9.11_p20210409-fix-gtk-cliopts.patch
@@ -0,0 +1,91 @@
+Fix unusable command line options since GTK+:3 migration.
+
+https://github.com/TASVideos/desmume/pull/416
+From: Ingo Saitz <ingo.sa...@stud.uni-hannover.de>
+Date: Sun, 3 Jan 2021 16:00:38 +0100
+--- a/desmume/src/commandline.cpp
++++ b/desmume/src/commandline.cpp
+@@ -41,7 +41,8 @@
+ , _load_to_memory(-1)
+-, _play_movie_file(0)
+-, _record_movie_file(0)
+-, _cflash_image(0)
+-, _cflash_path(0)
+-, _gbaslot_rom(0)
++, nds_file("")
++, play_movie_file("")
++, record_movie_file("")
++, cflash_image("")
++, cflash_path("")
++, gbaslot_rom("")
+ , _bios_arm9(NULL)
+@@ -60,4 +61,4 @@
+ , _texture_smooth(-1)
+-, _slot1(NULL)
+-, _slot1_fat_dir(NULL)
++, slot1("")
++, slot1_fat_dir("")
+ , _slot1_fat_dir_type(false)
+@@ -68,3 +69,3 @@
+ #endif
+-, _console_type(NULL)
++, console_type("")
+ , _advanscene_import(NULL)
+@@ -360,4 +361,4 @@
+               case OPT_SLOT2_CFLASH_IMAGE: cflash_image = optarg; break;
+-              case OPT_SLOT2_CFLASH_DIR: _cflash_path = optarg; break;
+-              case OPT_SLOT2_GBAGAME: _gbaslot_rom = optarg; break;
++              case OPT_SLOT2_CFLASH_DIR: cflash_path = optarg; break;
++              case OPT_SLOT2_GBAGAME: gbaslot_rom = optarg; break;
+ 
+@@ -520,4 +521,5 @@
+ 
+-      if((_cflash_image && _gbaslot_rom) || (_cflash_path && _gbaslot_rom)) {
++      if((cflash_image != "" && gbaslot_rom != "") || (cflash_path != "" && 
gbaslot_rom != "")) {
+               printerror("Cannot specify both cflash and gbaslot rom (both 
occupy SLOT-2)\n");
++              return false;
+       }
+--- a/desmume/src/commandline.h
++++ b/desmume/src/commandline.h
+@@ -88,7 +88,2 @@
+ private:
+-      char* _play_movie_file;
+-      char* _record_movie_file;
+-      char* _cflash_image;
+-      char* _cflash_path;
+-      char* _gbaslot_rom;
+       char* _bios_arm9, *_bios_arm7;
+@@ -109,5 +104,2 @@
+ #endif
+-      char* _slot1;
+-      char *_slot1_fat_dir;
+-      char* _console_type;
+       char* _advanscene_import;
+--- a/desmume/src/frontend/posix/gtk/main.cpp
++++ b/desmume/src/frontend/posix/gtk/main.cpp
+@@ -3555,12 +3555,9 @@
+ 
+-static void
+-handle_open(GApplication *application,
+-            GFile **files,
+-            gint n_files,
+-            const gchar *hint,
++static gint
++ignore_command_line(GApplication *application,
++            GApplicationCommandLine *command_line,
+             gpointer user_data)
+ {
+-    configured_features *my_config = 
static_cast<configured_features*>(user_data);
+-    my_config->nds_file = g_file_get_path(files[0]);
+     common_gtk_main(application, user_data);
++    return 0;
+ }
+@@ -3584,6 +3581,5 @@
+ 
+-  // TODO: pass G_APPLICATION_HANDLES_COMMAND_LINE instead.
+-  GtkApplication *app = gtk_application_new("org.desmume.DeSmuME", 
G_APPLICATION_HANDLES_OPEN);
++  GtkApplication *app = gtk_application_new("org.desmume.DeSmuME", 
G_APPLICATION_HANDLES_COMMAND_LINE);
+   g_signal_connect (app, "activate", G_CALLBACK(common_gtk_main), &my_config);
+-  g_signal_connect (app, "open", G_CALLBACK(handle_open), &my_config);
++  g_signal_connect (app, "command-line", G_CALLBACK(ignore_command_line), 
&my_config);
+   g_action_map_add_action_entries(G_ACTION_MAP(app),

diff --git a/games-emulation/desmume/metadata.xml 
b/games-emulation/desmume/metadata.xml
index 3aa5e0a6909..52b0e3d68a4 100644
--- a/games-emulation/desmume/metadata.xml
+++ b/games-emulation/desmume/metadata.xml
@@ -5,6 +5,11 @@
                <email>ga...@gentoo.org</email>
                <name>Gentoo Games Project</name>
        </maintainer>
+       <use>
+               <flag name="gdb">Enable support for the remote GDB stub</flag>
+               <flag name="openal">Use <pkg>media-libs/openal</pkg> for 
microphone input</flag>
+               <flag name="wifi">Enable support for Wi-Fi (experimental and 
discouraged)</flag>
+       </use>
        <upstream>
                <remote-id type="github">TASVideos/desmume</remote-id>
                <remote-id type="sourceforge">desmume</remote-id>

Reply via email to