From f8a419ba8fb8418f61d9afb0948eb5af3ead99f0 Mon Sep 17 00:00:00 2001 From: Ivar Scholten Date: Mon, 7 Mar 2022 23:17:46 +0100 Subject: ryujinx: 1.1.54 -> 1.1.64 --- pkgs/applications/emulators/ryujinx/appdir.patch | 23 ++++++++++++ pkgs/applications/emulators/ryujinx/default.nix | 48 ++++++++++-------------- pkgs/applications/emulators/ryujinx/log.patch | 21 ----------- pkgs/applications/emulators/ryujinx/updater.sh | 6 ++- 4 files changed, 47 insertions(+), 51 deletions(-) create mode 100644 pkgs/applications/emulators/ryujinx/appdir.patch delete mode 100644 pkgs/applications/emulators/ryujinx/log.patch (limited to 'pkgs/applications/emulators') diff --git a/pkgs/applications/emulators/ryujinx/appdir.patch b/pkgs/applications/emulators/ryujinx/appdir.patch new file mode 100644 index 000000000000..696077d29dea --- /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 1a2d122e637c..2ac16662b882 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 57e96e5c25cb..000000000000 --- 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 4b5fa4834fab..9c2f69e606ca 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" -- cgit 1.4.1