diff --git a/pkgs/by-name/du/duckstation/package.nix b/pkgs/by-name/du/duckstation/package.nix index 05232359446d..e84c5306363f 100644 --- a/pkgs/by-name/du/duckstation/package.nix +++ b/pkgs/by-name/du/duckstation/package.nix @@ -8,7 +8,6 @@ ninja, extra-cmake-modules, wayland-scanner, - makeBinaryWrapper, qt6, sdl3, zstd, @@ -29,7 +28,7 @@ spirv-cross, udev, libbacktrace, - ffmpeg-headless, + ffmpeg_8-headless, alsa-lib, libjack2, libpulseaudio, @@ -47,17 +46,11 @@ let meta = { description = "Fast PlayStation 1 emulator for x86-64/AArch32/AArch64/RV64"; longDescription = '' - # DISCLAIMER - This is an **unofficial** package, do not report any issues to - duckstation developers. Instead, please report them to + DISCLAIMER: This is an **unofficial** package, do not report any + issues to duckstation developers. Instead, please report them to or use the officially supported platform build at or other - upstream-approved distribution mechanism not listed here. We - (nixpkgs) do not endorse or condone any action taken on your own - accord in regards to this package. - - The SDL audio backend must be used as cubeb support is currently - non-functional without patches. + upstream-approved distribution mechanism not listed here. ''; homepage = "https://duckstation.org"; license = lib.licenses.cc-by-nc-nd-40; @@ -71,15 +64,22 @@ let linuxDrv = llvmPackages.stdenv.mkDerivation (finalAttrs: { pname = "duckstation"; - version = pkgSources.duckstation.version; + version = "0.1-9787-unstable-2025-10-13"; src = fetchFromGitHub { owner = "stenzek"; repo = "duckstation"; - tag = "v${finalAttrs.version}"; - hash = pkgSources.duckstation.hash_linux; + rev = "8f0c9dd171210dfd7f06223a393e2565abbaabf3"; + hash = "sha256-CzHWdY0RaGBB6CY3PzHHHbq3/Mbf6WtUm6Dizr0IW6I="; }; + # TODO: Remove once this is fixed upstream. + postPatch = '' + substituteInPlace src/util/animated_image.cpp \ + --replace-fail "png_write_frame_head(png_ptr, info_ptr," \ + "png_write_frame_head(png_ptr, info_ptr, 0," + ''; + vendorDiscordRPC = llvmPackages.stdenv.mkDerivation { pname = "discord-rpc-duckstation"; inherit (finalAttrs) version; @@ -190,7 +190,8 @@ let - Improving performance. - Fixing game-breaking bugs. - Unlocking the frame rate (e.g. "60 FPS patches"). - - Widescreen rendering where the built-in widescreen rendering rendering is insufficient. + - Widescreen rendering where the built-in widescreen + rendering rendering is insufficient. ''; license = lib.licenses.mit; inherit (meta) maintainers; @@ -209,7 +210,6 @@ let ninja extra-cmake-modules wayland-scanner - makeBinaryWrapper qt6.wrapQtAppsHook qt6.qttools ]; @@ -232,7 +232,7 @@ let qt6.qtbase udev libbacktrace - ffmpeg-headless + ffmpeg_8-headless alsa-lib libjack2 pipewire @@ -244,19 +244,14 @@ let finalAttrs.soundtouch ]; - cmakeFlags = [ - (lib.cmakeBool "ALLOW_INSTALL" true) - (lib.cmakeFeature "CMAKE_INSTALL_PREFIX" "${placeholder "out"}/lib/duckstation") - ]; + installPhase = '' + runHook preInstall - postInstall = '' - makeWrapper $out/lib/duckstation/duckstation-qt $out/bin/duckstation-qt - - mkdir -p $out/share/applications + mkdir -p $out/{lib,bin,share/{applications,icons/hicolor/512x512/apps}} + cp -r bin $out/lib/duckstation + ln -s $out/lib/duckstation/duckstation-qt $out/bin/duckstation-qt ln -s $out/lib/duckstation/resources/org.duckstation.DuckStation.desktop \ $out/share/applications - - mkdir -p $out/share/icons/hicolor/512x512/apps ln -s $out/lib/duckstation/resources/org.duckstation.DuckStation.png \ $out/share/icons/hicolor/512x512/apps @@ -265,8 +260,19 @@ let install -Dm644 README.* -t $out/share/doc/duckstation install -Dm644 CONTRIBUTORS.md -t $out/share/doc/duckstation popd + + runHook postInstall ''; + qtWrapperArgs = [ + "--prefix LD_LIBRARY_PATH : ${ + (lib.makeLibraryPath [ + ffmpeg_8-headless + finalAttrs.vendorShaderc + ]) + }" + ]; + inherit passthru; meta = meta // { diff --git a/pkgs/by-name/du/duckstation/sources.json b/pkgs/by-name/du/duckstation/sources.json index dfca7c572752..a4db277a14d0 100644 --- a/pkgs/by-name/du/duckstation/sources.json +++ b/pkgs/by-name/du/duckstation/sources.json @@ -13,8 +13,8 @@ "hash": "sha256-/o3LPYvMTlKhuvLQITnADmz8BTGXVaVR0aciOWVyFS8=" }, "chtdb": { - "date": "2025-10-05", - "rev": "eab12dde0ddfd03e1260d7111f2a0709144e047e", - "hash": "sha256-wRk9BijV52BCcvpeq4CzhLsaWYYrt+vFvdMwlAixBvU=" + "date": "2025-10-16", + "rev": "aff6149c29beae9c52aa35ea5cb53986c8916546", + "hash": "sha256-gpJ6Wlo7PGMPraK8Bppb+3qDWZ6Oxd4kvLJEFtGF50U=" } }