about summary refs log tree commit diff
path: root/pkgs/applications/emulators
diff options
context:
space:
mode:
authorThiago Kenji Okada <thiagokokada@gmail.com>2022-12-23 21:46:49 +0000
committerThiago Kenji Okada <thiagokokada@gmail.com>2022-12-23 22:26:34 +0000
commit1aacb258cbd283356b3637bbf27deaab1596b978 (patch)
treeb757579258a92e4955056e142703c9c06622902d /pkgs/applications/emulators
parent61ffb5da597bf3825cc56556b07d8213d9e86819 (diff)
retroarchBare: backport patches from upstream
Diffstat (limited to 'pkgs/applications/emulators')
-rw-r--r--pkgs/applications/emulators/retroarch/default.nix29
-rw-r--r--pkgs/applications/emulators/retroarch/move-retroarch-assets-to-retroarch_assets_path.patch60
-rw-r--r--pkgs/applications/emulators/retroarch/use-default-values-for-libretro_info_path-assets_directory.patch34
-rw-r--r--pkgs/applications/emulators/retroarch/use-fixed-path-for-libretro_core_info.patch41
4 files changed, 51 insertions, 113 deletions
diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix
index b8ae0fe0181dd..442d7caa2e1af 100644
--- a/pkgs/applications/emulators/retroarch/default.nix
+++ b/pkgs/applications/emulators/retroarch/default.nix
@@ -10,6 +10,7 @@
 , alsa-lib
 , dbus
 , fetchFromGitHub
+, fetchpatch
 , ffmpeg_4
 , flac
 , freetype
@@ -57,16 +58,18 @@ stdenv.mkDerivation rec {
     rev = "v${version}";
   };
 
-  patches = lib.optional withAssets
-    (substituteAll {
-      src = ./move-retroarch-assets-to-retroarch_assets_path.patch;
-      retroarch_assets_path = retroarch-assets;
+  patches = [
+    ./use-default-values-for-libretro_info_path-assets_directory.patch
+    # TODO: remove those two patches in the next RetroArch release
+    (fetchpatch {
+      url = "https://github.com/libretro/RetroArch/commit/894c44c5ea7f1eada9207be3c29e8d5c0a7a9e1f.patch";
+      hash = "sha256-ThB6jd9pmsipT8zjehz7znK/s0ofHHCJeEYBKur6sO8=";
     })
-  ++ lib.optional withCoreInfo
-    (substituteAll {
-      src = ./use-fixed-path-for-libretro_core_info.patch;
-      libretro_info_path = libretro-core-info;
-    });
+    (fetchpatch {
+      url = "https://github.com/libretro/RetroArch/commit/c5bfd52159cf97312bb28fc42203c39418d1bbbd.patch";
+      hash = "sha256-rb1maAvCSUgq2VtJ67iqUY+Fz00Fchl8YGG0EPm0+F0=";
+    })
+  ];
 
   nativeBuildInputs = [ pkg-config ] ++
     lib.optional withWayland wayland ++
@@ -113,9 +116,11 @@ stdenv.mkDerivation rec {
   ] ++
   lib.optionals withAssets [
     "--disable-update_assets"
-    # TODO: investigate why we also need this patch:
-    # ./move-retroarch-assets-to-retroarch_assets_path.patch
-    "--with-assets_dir=${retroarch-assets}"
+    "--with-assets_dir=${retroarch-assets}/share"
+  ] ++
+  lib.optionals withCoreInfo [
+    "--disable-update_core_info"
+    "--with-core_info_dir=${libretro-core-info}/share"
   ] ++
   lib.optionals stdenv.isLinux [
     "--enable-dbus"
diff --git a/pkgs/applications/emulators/retroarch/move-retroarch-assets-to-retroarch_assets_path.patch b/pkgs/applications/emulators/retroarch/move-retroarch-assets-to-retroarch_assets_path.patch
deleted file mode 100644
index 477cc4c626fbf..0000000000000
--- a/pkgs/applications/emulators/retroarch/move-retroarch-assets-to-retroarch_assets_path.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b3ccf05014f4a79800d8bed05b0dcfdc010e191c Mon Sep 17 00:00:00 2001
-From: Thiago Kenji Okada <thiagokokada@gmail.com>
-Date: Sun, 18 Dec 2022 22:06:48 +0000
-Subject: [PATCH 2/2] Move retroarch assets path to @retroarch_assets_path@
-
----
- configuration.c                  |  2 +-
- frontend/drivers/platform_unix.c | 16 ++++++++--------
- 2 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/configuration.c b/configuration.c
-index 06a99236c2..15b575d8a2 100644
---- a/configuration.c
-+++ b/configuration.c
-@@ -1539,7 +1539,7 @@ static struct config_path_setting *populate_settings_path(
-    SETTING_PATH("core_assets_directory",
-          settings->paths.directory_core_assets, true, NULL, true);
-    SETTING_PATH("assets_directory",
--         settings->paths.directory_assets, true, NULL, true);
-+         settings->paths.directory_assets, true, NULL, false);
-    SETTING_PATH("dynamic_wallpapers_directory",
-          settings->paths.directory_dynamic_wallpapers, true, NULL, true);
-    SETTING_PATH("thumbnails_directory",
-diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c
-index 43ea5f80c9..01b6cccbcc 100644
---- a/frontend/drivers/platform_unix.c
-+++ b/frontend/drivers/platform_unix.c
-@@ -1778,21 +1778,21 @@ static void frontend_unix_get_env(int *argc,
-    fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], base_path,
-          "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
- 
--   if (path_is_directory("/usr/local/share/retroarch/assets"))
-+   if (path_is_directory("@retroarch_assets_path@/local/share/retroarch/assets"))
-       fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS],
--            "/usr/local/share/retroarch",
-+            "@retroarch_assets_path@/local/share/retroarch",
-             "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
--   else if (path_is_directory("/usr/share/retroarch/assets"))
-+   else if (path_is_directory("@retroarch_assets_path@/share/retroarch/assets"))
-       fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS],
--            "/usr/share/retroarch",
-+            "@retroarch_assets_path@/share/retroarch",
-             "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
--   else if (path_is_directory("/usr/local/share/games/retroarch/assets"))
-+   else if (path_is_directory("@retroarch_assets_path@/local/share/games/retroarch/assets"))
-       fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS],
--            "/usr/local/share/games/retroarch",
-+            "@retroarch_assets_path@/local/share/games/retroarch",
-             "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
--   else if (path_is_directory("/usr/share/games/retroarch/assets"))
-+   else if (path_is_directory("@retroarch_assets_path@/share/games/retroarch/assets"))
-       fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS],
--            "/usr/share/games/retroarch",
-+            "@retroarch_assets_path@/share/games/retroarch",
-             "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
-    else
-       fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], base_path,
--- 
-2.38.1
-
diff --git a/pkgs/applications/emulators/retroarch/use-default-values-for-libretro_info_path-assets_directory.patch b/pkgs/applications/emulators/retroarch/use-default-values-for-libretro_info_path-assets_directory.patch
new file mode 100644
index 0000000000000..7ef7f439ecd10
--- /dev/null
+++ b/pkgs/applications/emulators/retroarch/use-default-values-for-libretro_info_path-assets_directory.patch
@@ -0,0 +1,34 @@
+From 6960855a0cdfd671d214030260b340a73878af52 Mon Sep 17 00:00:00 2001
+From: Thiago Kenji Okada <thiagokokada@gmail.com>
+Date: Fri, 23 Dec 2022 21:42:15 +0000
+Subject: [PATCH] Use default values for libretro_info_path/assets_directories
+
+---
+ configuration.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configuration.c b/configuration.c
+index d9ab8370c4..15b575d8a2 100644
+--- a/configuration.c
++++ b/configuration.c
+@@ -1483,7 +1483,7 @@ static struct config_path_setting *populate_settings_path(
+    SETTING_PATH("core_options_path",
+          settings->paths.path_core_options, false, NULL, true);
+    SETTING_PATH("libretro_info_path",
+-         settings->paths.path_libretro_info, false, NULL, true);
++         settings->paths.path_libretro_info, false, NULL, false);
+    SETTING_PATH("content_database_path",
+          settings->paths.path_content_database, false, NULL, true);
+    SETTING_PATH("cheat_database_path",
+@@ -1539,7 +1539,7 @@ static struct config_path_setting *populate_settings_path(
+    SETTING_PATH("core_assets_directory",
+          settings->paths.directory_core_assets, true, NULL, true);
+    SETTING_PATH("assets_directory",
+-         settings->paths.directory_assets, true, NULL, true);
++         settings->paths.directory_assets, true, NULL, false);
+    SETTING_PATH("dynamic_wallpapers_directory",
+          settings->paths.directory_dynamic_wallpapers, true, NULL, true);
+    SETTING_PATH("thumbnails_directory",
+-- 
+2.38.1
+
diff --git a/pkgs/applications/emulators/retroarch/use-fixed-path-for-libretro_core_info.patch b/pkgs/applications/emulators/retroarch/use-fixed-path-for-libretro_core_info.patch
deleted file mode 100644
index 256397fd49eaf..0000000000000
--- a/pkgs/applications/emulators/retroarch/use-fixed-path-for-libretro_core_info.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 6145cb9ed935621f1974655fe1ab44cf2f0fbcce Mon Sep 17 00:00:00 2001
-From: Thiago Kenji Okada <thiagokokada@gmail.com>
-Date: Sat, 29 Oct 2022 12:27:55 +0100
-Subject: [PATCH] Use fixed path for libretro_core_info
-
----
- configuration.c                  | 2 +-
- frontend/drivers/platform_unix.c | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/configuration.c b/configuration.c
-index af3fc8f43c..c6d56308b3 100644
---- a/configuration.c
-+++ b/configuration.c
-@@ -1468,7 +1468,7 @@ static struct config_path_setting *populate_settings_path(
-    SETTING_PATH("core_options_path",
-          settings->paths.path_core_options, false, NULL, true);
-    SETTING_PATH("libretro_info_path",
--         settings->paths.path_libretro_info, false, NULL, true);
-+         settings->paths.path_libretro_info, false, NULL, false);
-    SETTING_PATH("content_database_path",
-          settings->paths.path_content_database, false, NULL, true);
-    SETTING_PATH("cheat_database_path",
-diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c
-index fe5f7341c9..c2a91f8c99 100644
---- a/frontend/drivers/platform_unix.c
-+++ b/frontend/drivers/platform_unix.c
-@@ -1799,8 +1799,8 @@ static void frontend_unix_get_env(int *argc,
-    fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
-          "core_info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
- #else
--   fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
--         "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
-+   fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], "@libretro_info_path@",
-+         "share/libretro/info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
- #endif
-    fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], base_path,
-          "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
--- 
-2.38.0
-