From 24b96c15c03d92e37b0fa6618ecb31d17d321a0e Mon Sep 17 00:00:00 2001 From: Martino Fontana Date: Fri, 29 Dec 2023 16:55:11 +0100 Subject: [PATCH 1/2] duckstation: unstable-2023-09-30 -> 0.1-6283 --- .../duckstation/002-hardcode-vars.diff | 4 +- .../emulators/duckstation/default.nix | 57 ++++++++----------- 2 files changed, 27 insertions(+), 34 deletions(-) diff --git a/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff b/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff index f0b7bb67a0ee..edba33fce7ce 100644 --- a/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff +++ b/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff @@ -1,5 +1,5 @@ diff --git a/src/scmversion/gen_scmversion.sh b/src/scmversion/gen_scmversion.sh -index 9c1dacab..d1f895ee 100755 +index 9122cd8..50ed8f9 100755 --- a/src/scmversion/gen_scmversion.sh +++ b/src/scmversion/gen_scmversion.sh @@ -10,10 +10,10 @@ else @@ -8,7 +8,7 @@ index 9c1dacab..d1f895ee 100755 -HASH=$(git rev-parse HEAD) -BRANCH=$(git rev-parse --abbrev-ref HEAD | tr -d '\r\n') --TAG=$(git describe --tags --dirty --exclude latest --exclude preview --exclude legacy --exclude previous-latest | tr -d '\r\n') +-TAG=$(git describe --dirty | tr -d '\r\n') -DATE=$(git log -1 --date=iso8601-strict --format=%cd) +HASH="@gitHash@" +BRANCH="@gitBranch@" diff --git a/pkgs/applications/emulators/duckstation/default.nix b/pkgs/applications/emulators/duckstation/default.nix index e7980e20dddd..2d09c0a2c0b4 100644 --- a/pkgs/applications/emulators/duckstation/default.nix +++ b/pkgs/applications/emulators/duckstation/default.nix @@ -9,7 +9,7 @@ , extra-cmake-modules , libXrandr , libbacktrace -, makeDesktopItem +, makeWrapper , ninja , pkg-config , qtbase @@ -20,18 +20,17 @@ , vulkan-loader , wayland , wrapQtAppsHook -, enableWayland ? true }: stdenv.mkDerivation (finalAttrs: { pname = "duckstation"; - version = "unstable-2023-09-30"; + version = "0.1-6283"; src = fetchFromGitHub { owner = "stenzek"; repo = "duckstation"; - rev = "d5608bf12df7a7e03750cb94a08a3d7999034ae2"; - hash = "sha256-ktfZgacjkN6GQb1vLmyTZMr8QmmH12qAvFSIBTjgRSs="; + rev = "1d751d33f1fce0f0d2b9e00b3a4fb4ec76e77f8f"; + hash = "sha256-nrdsywg1Sn/YPLaidquePX45+3AxncxTxm+sGDDhL2c="; }; patches = [ @@ -42,21 +41,19 @@ stdenv.mkDerivation (finalAttrs: { src = ./002-hardcode-vars.diff; gitHash = finalAttrs.src.rev; gitBranch = "master"; - gitTag = "0.1-5889-gd5608bf1"; - gitDate = "2023-09-30T23:20:09+10:00"; + gitTag = "${finalAttrs.version}-g1d751d33"; + gitDate = "2024-01-08T15:49:05+10:00"; }) ]; nativeBuildInputs = [ cmake copyDesktopItems + extra-cmake-modules ninja pkg-config qttools wrapQtAppsHook - ] - ++ lib.optionals enableWayland [ - extra-cmake-modules ]; buildInputs = [ @@ -66,9 +63,6 @@ stdenv.mkDerivation (finalAttrs: { libbacktrace qtbase qtsvg - vulkan-loader - ] - ++ lib.optionals enableWayland [ qtwayland wayland ] @@ -78,21 +72,6 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeBool "BUILD_TESTS" true) - (lib.cmakeBool "ENABLE_WAYLAND" enableWayland) - ]; - - desktopItems = [ - (makeDesktopItem { - name = "duckstation-qt"; - desktopName = "DuckStation"; - genericName = "PlayStation 1 Emulator"; - icon = "duckstation"; - tryExec = "duckstation-qt"; - exec = "duckstation-qt %f"; - comment = "Fast PlayStation 1 emulator"; - categories = [ "Game" "Emulator" "Qt" ]; - type = "Application"; - }) ]; doCheck = true; @@ -110,14 +89,28 @@ stdenv.mkDerivation (finalAttrs: { cp -r bin $out/share/duckstation ln -s $out/share/duckstation/duckstation-qt $out/bin/ - install -Dm644 bin/resources/images/duck.png $out/share/pixmaps/duckstation.png + install -Dm644 $src/scripts/org.duckstation.DuckStation.desktop $out/share/applications/org.duckstation.DuckStation.desktop + install -Dm644 $src/scripts/org.duckstation.DuckStation.png $out/share/pixmaps/org.duckstation.DuckStation.png runHook postInstall ''; - qtWrapperArgs = [ - "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ vulkan-loader ] ++ cubeb.passthru.backendLibs)}" - ]; + qtWrapperArgs = + let + libPath = lib.makeLibraryPath ([ + vulkan-loader + ] ++ cubeb.passthru.backendLibs); + in [ + "--prefix LD_LIBRARY_PATH : ${libPath}" + ]; + + # https://github.com/stenzek/duckstation/blob/master/scripts/appimage/apprun-hooks/default-to-x11.sh + # Can't avoid the double wrapping, the binary wrapper from qtWrapperArgs doesn't support --run + postFixup = '' + source "${makeWrapper}/nix-support/setup-hook" + wrapProgram $out/bin/duckstation-qt \ + --run 'if [[ -z $I_WANT_A_BROKEN_WAYLAND_UI ]]; then export QT_QPA_PLATFORM=xcb; fi' + ''; meta = { homepage = "https://github.com/stenzek/duckstation"; From b3ccaaba994f304cbc1dd482beb1ee973cc424eb Mon Sep 17 00:00:00 2001 From: Martino Fontana Date: Wed, 14 Feb 2024 20:48:21 +0100 Subject: [PATCH 2/2] duckstation: 0.1-6283 -> 0.1-6292 --- pkgs/applications/emulators/duckstation/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/emulators/duckstation/default.nix b/pkgs/applications/emulators/duckstation/default.nix index 2d09c0a2c0b4..7e7bfd494600 100644 --- a/pkgs/applications/emulators/duckstation/default.nix +++ b/pkgs/applications/emulators/duckstation/default.nix @@ -24,13 +24,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "duckstation"; - version = "0.1-6283"; + version = "0.1-6292"; src = fetchFromGitHub { owner = "stenzek"; repo = "duckstation"; - rev = "1d751d33f1fce0f0d2b9e00b3a4fb4ec76e77f8f"; - hash = "sha256-nrdsywg1Sn/YPLaidquePX45+3AxncxTxm+sGDDhL2c="; + rev = "0bc42c38aab49030118f507c9783de047769148b"; + hash = "sha256-8OavixSwEWihFY2fEdsepR1lqWlTH+//xZRKwb7lFCQ="; }; patches = [ @@ -41,8 +41,8 @@ stdenv.mkDerivation (finalAttrs: { src = ./002-hardcode-vars.diff; gitHash = finalAttrs.src.rev; gitBranch = "master"; - gitTag = "${finalAttrs.version}-g1d751d33"; - gitDate = "2024-01-08T15:49:05+10:00"; + gitTag = "${finalAttrs.version}-g0bc42c38"; + gitDate = "2024-02-06T22:47:47+09:00"; }) ];