After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 769678 - retro: Support libretro cores distributed with a .info
retro: Support libretro cores distributed with a .info
Status: RESOLVED FIXED
Product: gnome-games
Classification: Core
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: GNOME Games maintainers
GNOME Games maintainers
: 769677 (view as bug list)
Depends on: 769729
Blocks:
 
 
Reported: 2016-08-09 17:14 UTC by Adrien Plazas
Modified: 2016-08-11 08:07 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
build: Add RETRO_PLUGIN_PATH (1.33 KB, patch)
2016-08-09 17:17 UTC, Adrien Plazas
none Details | Review
retro-gobject: Add ModuleQuery (4.05 KB, patch)
2016-08-09 17:17 UTC, Adrien Plazas
none Details | Review
retro-gobject: Deprecate old module lookup functions (1.73 KB, patch)
2016-08-09 17:17 UTC, Adrien Plazas
none Details | Review
retro: Add RetroRunner.get_module_path() (1.84 KB, patch)
2016-08-11 07:03 UTC, Adrien Plazas
committed Details | Review
retro: Allow to search modules for MIME types (3.12 KB, patch)
2016-08-11 07:03 UTC, Adrien Plazas
committed Details | Review
Build retro runners with required MIME types (17.93 KB, patch)
2016-08-11 07:03 UTC, Adrien Plazas
committed Details | Review

Description Adrien Plazas 2016-08-09 17:14:24 UTC
We should make retro-gobject ease up the work to look for a valid libretro module to use depending on its .info file.
Comment 1 Adrien Plazas 2016-08-09 17:17:04 UTC
Created attachment 333007 [details] [review]
build: Add RETRO_PLUGIN_PATH

This will be used in the next commit to look for libretro modules in
more places.
Comment 2 Adrien Plazas 2016-08-09 17:17:17 UTC
Created attachment 333008 [details] [review]
retro-gobject: Add ModuleQuery

Add the ModuleQuery namespace containing the lookup_module_for_info()
and lookup_module_for_basename() functions.

This allows to look for libretro modules in more places and to support
the ones distributed with a .info file.
Comment 3 Adrien Plazas 2016-08-09 17:17:24 UTC
Created attachment 333009 [details] [review]
retro-gobject: Deprecate old module lookup functions

Deprecate Retro.get_plugins_dir(), Retro.search_module() and
Config.PROJECT_PLUGINS_DIR as they have been replaced in the previous
commits.
Comment 4 Adrien Plazas 2016-08-11 07:03:38 UTC
Created attachment 333086 [details] [review]
retro: Add RetroRunner.get_module_path()

Move the code looking for the modules to its own function.

This is needd to avoid cluttering prepare_core() as it will be expanded
in the next commit.
Comment 5 Adrien Plazas 2016-08-11 07:03:46 UTC
Created attachment 333087 [details] [review]
retro: Allow to search modules for MIME types

Allow RetroRunner to look for libretro modules based on their declared
supported MIME types and whether they support serialization.

This will be used in the next commit to allow using a broader range of
libretro cores.
Comment 6 Adrien Plazas 2016-08-11 07:03:54 UTC
Created attachment 333088 [details] [review]
Build retro runners with required MIME types

This allows to look for a valid libretro core from its supported MIME
types if none was found from retro-plugins.
Comment 7 Adrien Plazas 2016-08-11 07:07:31 UTC
Attachment 333086 [details] pushed as 59fa017 - retro: Add RetroRunner.get_module_path()
Attachment 333087 [details] pushed as 0a06e07 - retro: Allow to search modules for MIME types
Attachment 333088 [details] pushed as 6d2bbe2 - Build retro runners with required MIME types
Comment 8 Adrien Plazas 2016-08-11 07:55:05 UTC
*** Bug 769677 has been marked as a duplicate of this bug. ***
Comment 9 Adrien Plazas 2016-08-11 08:00:57 UTC
This patches have wrongly been attached to this bug and released as such, here is the original issue: https://bugzilla.gnome.org/show_bug.cgi?id=769677

retro: Support libretro cores distributed with a .info

We should support any libretro core distributed with a .info file containing enough information for us to work with, and not only the ones from retro-plugins.

We should require the core to have valid "supported_mimetypes" and "supports_serialization" variables.