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>