{ mkDerivation , stdenv , lib , fetchFromGitHub , fetchpatch , nix-update-script , qtbase , qtsvg , qttools , autoreconfHook , cmake , pkg-config , ffmpeg , libGLU , alsa-lib , libX11 , libXrandr , sndio }: mkDerivation rec { pname = "punes"; version = "0.109"; src = fetchFromGitHub { owner = "punesemu"; repo = "puNES"; rev = "v${version}"; sha256 = "sha256-6aRtR/d8nhzmpN9QKSZ62jye7qjfO+FpRMCXkX4Yubk="; }; postPatch = '' substituteInPlace configure.ac \ --replace '`$PKG_CONFIG --variable=host_bins Qt5Core`/lrelease' '${qttools.dev}/bin/lrelease' ''; nativeBuildInputs = [ autoreconfHook cmake pkg-config qttools ]; buildInputs = [ ffmpeg qtbase qtsvg libGLU ] ++ lib.optionals stdenv.hostPlatform.isLinux [ alsa-lib libX11 libXrandr ] ++ lib.optionals stdenv.hostPlatform.isBSD [ sndio ]; dontUseCmakeConfigure = true; enableParallelBuilding = true; configureFlags = [ "--prefix=${placeholder "out"}" "--without-opengl-nvidia-cg" "--with-ffmpeg" ]; passthru.updateScript = nix-update-script { attrPath = pname; }; meta = with lib; { description = "Qt-based Nintendo Entertainment System emulator and NSF/NSFe Music Player"; homepage = "https://github.com/punesemu/puNES"; license = licenses.gpl2Plus; maintainers = with maintainers; [ OPNA2608 ]; platforms = with platforms; linux ++ freebsd ++ openbsd ++ windows; }; }