summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorIvar Scholten <ivar.scholten@protonmail.com>2022-03-07 23:17:46 +0100
committerIvar Scholten <ivar.scholten@protonmail.com>2022-03-09 17:40:18 +0100
commitf8a419ba8fb8418f61d9afb0948eb5af3ead99f0 (patch)
tree1a6ed275e73b943e911b1fe18ded39abed0fc12a /pkgs
parentb71a8e2383f4f7beea239ce647c12a43f0228067 (diff)
downloadnixpkgs-f8a419ba8fb8418f61d9afb0948eb5af3ead99f0.tar
nixpkgs-f8a419ba8fb8418f61d9afb0948eb5af3ead99f0.tar.gz
nixpkgs-f8a419ba8fb8418f61d9afb0948eb5af3ead99f0.tar.bz2
nixpkgs-f8a419ba8fb8418f61d9afb0948eb5af3ead99f0.tar.lz
nixpkgs-f8a419ba8fb8418f61d9afb0948eb5af3ead99f0.tar.xz
nixpkgs-f8a419ba8fb8418f61d9afb0948eb5af3ead99f0.tar.zst
nixpkgs-f8a419ba8fb8418f61d9afb0948eb5af3ead99f0.zip
ryujinx: 1.1.54 -> 1.1.64
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/emulators/ryujinx/appdir.patch23
-rw-r--r--pkgs/applications/emulators/ryujinx/default.nix48
-rw-r--r--pkgs/applications/emulators/ryujinx/log.patch21
-rwxr-xr-xpkgs/applications/emulators/ryujinx/updater.sh6
4 files changed, 47 insertions, 51 deletions
diff --git a/pkgs/applications/emulators/ryujinx/appdir.patch b/pkgs/applications/emulators/ryujinx/appdir.patch
new file mode 100644
index 00000000000..696077d29de
--- /dev/null
+++ b/pkgs/applications/emulators/ryujinx/appdir.patch
@@ -0,0 +1,23 @@
+diff --git a/Ryujinx.Common/ReleaseInformations.cs b/Ryujinx.Common/ReleaseInformations.cs
+index 35890406..cca77163 100644
+--- a/Ryujinx.Common/ReleaseInformations.cs
++++ b/Ryujinx.Common/ReleaseInformations.cs
+@@ -42,12 +42,14 @@ namespace Ryujinx.Common
+
+         public static string GetBaseApplicationDirectory()
+         {
+-            if (IsFlatHubBuild())
+-            {
++            //if (IsFlatHubBuild())
++            //{
++                // This needs to be a mutable path, while CurrentDomain.BaseDirectory refers to the nix store.
++                // AppDataManager.BaseDirPath refers to ".config/Ryujinx" on Linux.
+                 return AppDataManager.BaseDirPath;
+-            }
++            //}
+ 
+-            return AppDomain.CurrentDomain.BaseDirectory;
++            //return AppDomain.CurrentDomain.BaseDirectory;
+         }
+     }
+ }
diff --git a/pkgs/applications/emulators/ryujinx/default.nix b/pkgs/applications/emulators/ryujinx/default.nix
index 1a2d122e637..2ac16662b88 100644
--- a/pkgs/applications/emulators/ryujinx/default.nix
+++ b/pkgs/applications/emulators/ryujinx/default.nix
@@ -1,8 +1,6 @@
 { lib
 , buildDotnetModule
 , fetchFromGitHub
-, makeDesktopItem
-, copyDesktopItems
 , dotnetCorePackages
 , libX11
 , libgdiplus
@@ -19,13 +17,13 @@
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.1.54"; # Versioning is based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+  version = "1.1.64"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "3705c206688c69d3348f5cec84dc480d8d7c578e";
-    sha256 = "1lhnr11x46yjpka865m0dzkbkdxmrrhjcpvq4ab4wll6j0ipy908";
+    rev = "54bfaa125d9b6ae1be53ec431d40326fba51d0de";
+    sha256 = "0p8wmnm8sjx7wqb5z62mp8c3cwrv241ji3fawj2qgqx3k9jlb31i";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_6_0;
@@ -41,7 +39,6 @@ buildDotnetModule rec {
   executables = [ "Ryujinx" ];
 
   nativeBuildInputs = [
-    copyDesktopItems
     wrapGAppsHook
   ];
 
@@ -54,7 +51,6 @@ buildDotnetModule rec {
     gtk3
     libX11
     libgdiplus
-    ffmpeg
     SDL2_mixer
     openal
     libsoundio
@@ -63,34 +59,31 @@ buildDotnetModule rec {
   ];
 
   patches = [
-    ./log.patch # Without this, Ryujinx attempts to write logs to the nix store. This patch makes it write to "~/.config/Ryujinx/Logs" on Linux.
+    ./appdir.patch # Ryujinx attempts to write to the nix store. This patch redirects it to "~/.config/Ryujinx" on Linux.
   ];
 
   preInstall = ''
-    # TODO: fix this hack https://github.com/Ryujinx/Ryujinx/issues/2349
-    mkdir -p $out/lib/sndio-6
-    ln -s ${sndio}/lib/libsndio.so $out/lib/sndio-6/libsndio.so.6
-
+    # Ryujinx tries to use ffmpeg from PATH
     makeWrapperArgs+=(
-      --suffix LD_LIBRARY_PATH : "$out/lib/sndio-6"
+      --suffix PATH : ${lib.makeBinPath [ ffmpeg ]}
     )
+  '';
+
+  preFixup = ''
+    mkdir -p $out/share/{applications,icons/hicolor/scalable/apps,mime/packages}
+    pushd ${src}/distribution/linux
+
+    install -D ./ryujinx.desktop $out/share/applications/ryujinx.desktop
+    install -D ./ryujinx-mime.xml $out/share/mime/packages/ryujinx-mime.xml
+    install -D ./ryujinx-logo.svg $out/share/icons/hicolor/scalable/apps/ryujinx.svg
 
-    for i in 16 32 48 64 96 128 256 512 1024; do
-      install -D ${src}/Ryujinx/Ui/Resources/Logo_Ryujinx.png $out/share/icons/hicolor/''${i}x$i/apps/ryujinx.png
-    done
+    substituteInPlace $out/share/applications/ryujinx.desktop --replace \
+      "Exec=Ryujinx" "Exec=$out/bin/Ryujinx"
+
+    popd
   '';
 
-  desktopItems = [
-    (makeDesktopItem {
-      desktopName = "Ryujinx";
-      name = "ryujinx";
-      exec = "Ryujinx";
-      icon = "ryujinx";
-      comment = meta.description;
-      type = "Application";
-      categories = [ "Game" ];
-    })
-  ];
+  passthru.updateScript = ./updater.sh;
 
   meta = with lib; {
     homepage = "https://ryujinx.org/";
@@ -108,5 +101,4 @@ buildDotnetModule rec {
     platforms = [ "x86_64-linux" ];
     mainProgram = "Ryujinx";
   };
-  passthru.updateScript = ./updater.sh;
 }
diff --git a/pkgs/applications/emulators/ryujinx/log.patch b/pkgs/applications/emulators/ryujinx/log.patch
deleted file mode 100644
index 57e96e5c25c..00000000000
--- a/pkgs/applications/emulators/ryujinx/log.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/Ryujinx/Configuration/LoggerModule.cs b/Ryujinx/Configuration/LoggerModule.cs
-index 44631ea0..534576bc 100644
---- a/Ryujinx/Configuration/LoggerModule.cs
-+++ b/Ryujinx/Configuration/LoggerModule.cs
-@@ -1,6 +1,7 @@
- using Ryujinx.Common;
- using Ryujinx.Common.Logging;
- using System;
-+using System.IO;
-
- namespace Ryujinx.Configuration
- {
-@@ -74,7 +75,7 @@ namespace Ryujinx.Configuration
-             if (e.NewValue)
-             {
-                 Logger.AddTarget(new AsyncLogTargetWrapper(
--                    new FileLogTarget(AppDomain.CurrentDomain.BaseDirectory, "file"),
-+                    new FileLogTarget(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Ryujinx"), "file"),
-                     1000,
-                     AsyncLogTargetOverflowAction.Block
-                 ));
diff --git a/pkgs/applications/emulators/ryujinx/updater.sh b/pkgs/applications/emulators/ryujinx/updater.sh
index 4b5fa4834fa..9c2f69e606c 100755
--- a/pkgs/applications/emulators/ryujinx/updater.sh
+++ b/pkgs/applications/emulators/ryujinx/updater.sh
@@ -1,6 +1,6 @@
 #! /usr/bin/env nix-shell
 #! nix-shell -i bash -p coreutils gnused curl common-updater-scripts nuget-to-nix nix-prefetch-git jq dotnet-sdk_6
-set -euxo pipefail
+set -euo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
 DEPS_FILE="$(realpath "./deps.nix")"
@@ -31,7 +31,7 @@ NEW_VERSION="${BASE_VERSION}.${PATCH_VERSION}"
 
 OLD_VERSION="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
 
-echo "comparing versions $OLD_VERSION => $NEW_VERSION"
+echo "comparing versions $OLD_VERSION -> $NEW_VERSION"
 if [[ "$OLD_VERSION" == "$NEW_VERSION" ]]; then
     echo "Already up to date! Doing nothing"
     exit 0
@@ -42,6 +42,8 @@ SHA="$(nix-prefetch-git https://github.com/ryujinx/ryujinx --rev "$COMMIT" --qui
 cd ../../../..
 update-source-version ryujinx "$NEW_VERSION" "$SHA" --rev="$COMMIT"
 
+echo "building Nuget lockfile"
+
 STORE_SRC="$(nix-build . -A ryujinx.src --no-out-link)"
 SRC="$(mktemp -d /tmp/ryujinx-src.XXX)"
 cp -rT "$STORE_SRC" "$SRC"