Flake: add nixpkgs patches

Update and fix rpcs3 package
This commit is contained in:
Toast 2025-04-27 00:23:28 +02:00
parent db6366a491
commit 85c3c570dd
3 changed files with 174 additions and 0 deletions

View file

@ -97,6 +97,8 @@
name = "patched-nixpkgs-unstable"; name = "patched-nixpkgs-unstable";
src = nixpkgs-unstable-raw; src = nixpkgs-unstable-raw;
patches = [ patches = [
./nixpkgs-patches/pr400900.patch
./nixpkgs-patches/pr386360.patch
]; ];
}; };
nixpkgs-patched = nixpkgs-raw.legacyPackages.x86_64-linux.applyPatches { nixpkgs-patched = nixpkgs-raw.legacyPackages.x86_64-linux.applyPatches {

View file

@ -0,0 +1,71 @@
From ec004ef5f30f4ea66ce0b77bab5ce778883aff5d Mon Sep 17 00:00:00 2001
From: Zane van Iperen <zane@zanevaniperen.com>
Date: Tue, 1 Apr 2025 20:23:42 +0900
Subject: [PATCH] rpcs3: 0.0.34-17323-92d070729 -> 0.0.36-17736-c86a25079
---
pkgs/by-name/rp/rpcs3/package.nix | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/pkgs/by-name/rp/rpcs3/package.nix b/pkgs/by-name/rp/rpcs3/package.nix
index 779d9048ca0ea0..dc39a9bc61e384 100644
--- a/pkgs/by-name/rp/rpcs3/package.nix
+++ b/pkgs/by-name/rp/rpcs3/package.nix
@@ -21,12 +21,14 @@
python3,
pugixml,
flatbuffers,
- llvm_16,
+ llvm_18,
cubeb,
+ opencv,
enableDiscordRpc ? false,
faudioSupport ? true,
faudio,
SDL2,
+ sdl3,
waylandSupport ? true,
wayland,
wrapGAppsHook3,
@@ -34,10 +36,10 @@
let
# Keep these separate so the update script can regex them
- rpcs3GitVersion = "17323-92d070729";
- rpcs3Version = "0.0.34-17323-92d070729";
- rpcs3Revision = "92d07072915b99917892dd7833c06eb44a09e234";
- rpcs3Hash = "sha256-GH2sXw1AYdqwzxucXFhVS0nM0eRhC+XDHS6RTZY8pYY=";
+ rpcs3GitVersion = "17736-c86a25079";
+ rpcs3Version = "0.0.36-17736-c86a25079";
+ rpcs3Revision = "c86a25079518032d73395a79979970acb2581a91";
+ rpcs3Hash = "sha256-e+mT3qn1oz1fh2bqu5YM+m774Can34If57Kd1T1EGbk=";
inherit (qt6Packages)
qtbase
@@ -77,9 +79,11 @@ stdenv.mkDerivation {
(lib.cmakeBool "USE_SYSTEM_CURL" true)
(lib.cmakeBool "USE_SYSTEM_WOLFSSL" true)
(lib.cmakeBool "USE_SYSTEM_FAUDIO" true)
+ (lib.cmakeBool "USE_SYSTEM_OPENAL" true)
(lib.cmakeBool "USE_SYSTEM_PUGIXML" true)
(lib.cmakeBool "USE_SYSTEM_FLATBUFFERS" true)
(lib.cmakeBool "USE_SYSTEM_SDL" true)
+ (lib.cmakeBool "USE_SYSTEM_OPENCV" true)
(lib.cmakeBool "USE_SDL" true)
(lib.cmakeBool "WITH_LLVM" true)
(lib.cmakeBool "BUILD_LLVM" false)
@@ -115,10 +119,12 @@ stdenv.mkDerivation {
wolfssl
python3
pugixml
- SDL2
+ SDL2 # Still needed by FAudio's CMake
+ sdl3
flatbuffers
- llvm_16
+ llvm_18
libSM
+ opencv
]
++ cubeb.passthru.backendLibs
++ lib.optional faudioSupport faudio

View file

@ -0,0 +1,101 @@
From 66e2bdbc88f1985c0960c29e991ffcbb8b180cc0 Mon Sep 17 00:00:00 2001
From: Marcin Serwin <marcin@serwin.dev>
Date: Tue, 22 Apr 2025 20:04:11 +0200
Subject: [PATCH] rpcs3: unbreak
---
.../rp/rpcs3/fix-qt6.9-compilation.patch | 68 +++++++++++++++++++
pkgs/by-name/rp/rpcs3/package.nix | 5 ++
2 files changed, 73 insertions(+)
create mode 100644 pkgs/by-name/rp/rpcs3/fix-qt6.9-compilation.patch
diff --git a/pkgs/by-name/rp/rpcs3/fix-qt6.9-compilation.patch b/pkgs/by-name/rp/rpcs3/fix-qt6.9-compilation.patch
new file mode 100644
index 00000000000000..13ca314d3022ba
--- /dev/null
+++ b/pkgs/by-name/rp/rpcs3/fix-qt6.9-compilation.patch
@@ -0,0 +1,68 @@
+From 600e4604169464c64cbf548e7629e483ad2aad1e Mon Sep 17 00:00:00 2001
+From: Megamouse <studienricky89@googlemail.com>
+Date: Mon, 7 Apr 2025 20:49:15 +0200
+Subject: [PATCH] Fix compilation with newer Qt
+
+---
+ rpcs3/rpcs3qt/game_list_base.cpp | 2 +-
+ rpcs3/rpcs3qt/game_list_frame.cpp | 4 ++--
+ rpcs3/rpcs3qt/ps_move_tracker_dialog.cpp | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/rpcs3/rpcs3qt/game_list_base.cpp b/rpcs3/rpcs3qt/game_list_base.cpp
+index 72b45d33bfbb..21640906ee7e 100644
+--- a/rpcs3/rpcs3qt/game_list_base.cpp
++++ b/rpcs3/rpcs3qt/game_list_base.cpp
+@@ -25,7 +25,7 @@ void game_list_base::repaint_icons(std::vector<game_info>& game_data, const QCol
+ for (game_info& game : game_data)
+ {
+ game->pxmap = placeholder;
+-
++
+ if (movie_item_base* item = game->item)
+ {
+ item->set_icon_load_func([this, game, device_pixel_ratio, cancel = item->icon_loading_aborted()](int)
+diff --git a/rpcs3/rpcs3qt/game_list_frame.cpp b/rpcs3/rpcs3qt/game_list_frame.cpp
+index a294d69cc68e..439913760053 100644
+--- a/rpcs3/rpcs3qt/game_list_frame.cpp
++++ b/rpcs3/rpcs3qt/game_list_frame.cpp
+@@ -2363,7 +2363,7 @@ void game_list_frame::BatchActionBySerials(progress_dialog* pdlg, const std::set
+
+ connect(future_watcher, &QFutureWatcher<void>::finished, this, [=, this]()
+ {
+- pdlg->setLabelText(progressLabel.arg(*index).arg(serials_size));
++ pdlg->setLabelText(progressLabel.arg(index->load()).arg(serials_size));
+ pdlg->setCancelButtonText(tr("OK"));
+ QApplication::beep();
+
+@@ -2396,7 +2396,7 @@ void game_list_frame::BatchActionBySerials(progress_dialog* pdlg, const std::set
+ return;
+ }
+
+- pdlg->setLabelText(progressLabel.arg(*index).arg(serials_size));
++ pdlg->setLabelText(progressLabel.arg(index->load()).arg(serials_size));
+ pdlg->setCancelButtonText(tr("OK"));
+ connect(pdlg, &progress_dialog::canceled, this, [pdlg](){ pdlg->deleteLater(); });
+ QApplication::beep();
+diff --git a/rpcs3/rpcs3qt/ps_move_tracker_dialog.cpp b/rpcs3/rpcs3qt/ps_move_tracker_dialog.cpp
+index 45fbe6f59e7d..4b9bc5dd6e4f 100644
+--- a/rpcs3/rpcs3qt/ps_move_tracker_dialog.cpp
++++ b/rpcs3/rpcs3qt/ps_move_tracker_dialog.cpp
+@@ -362,7 +362,7 @@ void ps_move_tracker_dialog::update_saturation_threshold(bool update_slider)
+ }
+ void ps_move_tracker_dialog::update_min_radius(bool update_slider)
+ {
+- ui->minRadiusGb->setTitle(tr("Min Radius: %0 %").arg(g_cfg_move.min_radius));
++ ui->minRadiusGb->setTitle(tr("Min Radius: %0 %").arg(g_cfg_move.min_radius.get()));
+
+ if (update_slider)
+ {
+@@ -372,7 +372,7 @@ void ps_move_tracker_dialog::update_min_radius(bool update_slider)
+
+ void ps_move_tracker_dialog::update_max_radius(bool update_slider)
+ {
+- ui->maxRadiusGb->setTitle(tr("Max Radius: %0 %").arg(g_cfg_move.max_radius));
++ ui->maxRadiusGb->setTitle(tr("Max Radius: %0 %").arg(g_cfg_move.max_radius.get()));
+
+ if (update_slider)
+ {
diff --git a/pkgs/by-name/rp/rpcs3/package.nix b/pkgs/by-name/rp/rpcs3/package.nix
index 779d9048ca0ea0..b633453a77e61d 100644
--- a/pkgs/by-name/rp/rpcs3/package.nix
+++ b/pkgs/by-name/rp/rpcs3/package.nix
@@ -58,6 +58,11 @@ stdenv.mkDerivation {
hash = rpcs3Hash;
};
+ patches = [
+ # Modified from https://github.com/RPCS3/rpcs3/pull/17009; doesn't apply cleanly due to intermediate commits
+ ./fix-qt6.9-compilation.patch
+ ];
+
passthru.updateScript = ./update.sh;
preConfigure = ''