Unverified Commit 76c5dacb authored by github-actions[bot]'s avatar github-actions[bot] Committed by GitHub
Browse files

Merge master into staging-next

parents cac80914 29d32d48
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -7707,6 +7707,16 @@
    githubId = 279868;
    name = "Matti Kariluoma";
  };
  matthewpi = {
    email = "me+nix@matthewp.io";
    github = "matthewpi";
    githubId = 26559841;
    name = "Matthew Penner";
    keys = [{
      longkeyid = "ed25519/0x31311906AD4CF6D6";
      fingerprint = "5118 F1CC B7B0 6C17 4DD1  5267 3131 1906 AD4C F6D6";
    }];
  };
  maurer = {
    email = "matthew.r.maurer+nix@gmail.com";
    github = "maurer";
+3 −2
Original line number Diff line number Diff line
@@ -73,7 +73,8 @@ in
        PrivateDevices = true;
        PrivateUsers = true;

        ProtectClock = true;
        # Disabled as it does not allow Jellyfin to interface with CUDA devices
        # ProtectClock = true;
        ProtectControlGroups = true;
        ProtectHostname = true;
        ProtectKernelLogs = true;
@@ -84,7 +85,7 @@ in

        RestrictNamespaces = true;
        # AF_NETLINK needed because Jellyfin monitors the network connection
        RestrictAddressFamilies = [ "AF_NETLINK" "AF_INET" "AF_INET6" ];
        RestrictAddressFamilies = [ "AF_NETLINK" "AF_INET" "AF_INET6" "AF_UNIX" ];
        RestrictRealtime = true;
        RestrictSUIDSGID = true;

+23 −0
Original line number Diff line number Diff line
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;
         }
     }
 }
+20 −28
Original line number Diff line number Diff line
{ 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;
}
+0 −21
Original line number Diff line number Diff line
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
                 ));
Loading