Unverified Commit e446172d authored by Matteo Pacini's avatar Matteo Pacini Committed by GitHub
Browse files

duckstation: 0.1-9669 -> latest rolling release; fix build (#456015)

parents 08f0f9e7 71cbb752
Loading
Loading
Loading
Loading
+33 −27
Original line number Diff line number Diff line
@@ -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
      <https://github.com/NixOS/nixpkgs> or use the officially
      supported platform build at <https://duckstation.org> 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")
    ];

    postInstall = ''
      makeWrapper $out/lib/duckstation/duckstation-qt $out/bin/duckstation-qt
    installPhase = ''
      runHook preInstall

      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 // {
+3 −3
Original line number Diff line number Diff line
@@ -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="
  }
}