Unverified Commit 3a23d44a authored by Thiago Kenji Okada's avatar Thiago Kenji Okada Committed by GitHub
Browse files

Merge pull request #306652 from atorres1985-contrib/snes9x

snes9x: 1.62.3 -> 1.62.3-unstable-2024-04-22
parents e009f41e aebbcc12
Loading
Loading
Loading
Loading
+63 −60
Original line number Diff line number Diff line
{ lib
, stdenv
, alsa-lib
, cmake
, fetchFromGitHub
, gtkmm3
, libepoxy
, libpng
, libselinux
, libX11
, libXdmcp
, libXext
, libXinerama
, libXrandr
, libXv
, minizip
, ninja
, pcre2
, pkg-config
, portaudio
, pulseaudio
, python3
, SDL2
, util-linuxMinimal
, wrapGAppsHook
, zlib
, withGtk ? false
{
  lib,
  SDL2,
  alsa-lib,
  cmake,
  fetchFromGitHub,
  gtkmm3,
  libX11,
  libXdmcp,
  libXext,
  libXinerama,
  libXrandr,
  libXv,
  libepoxy,
  libpng,
  libselinux,
  minizip,
  ninja,
  pcre2,
  pkg-config,
  portaudio,
  pulseaudio,
  python3,
  stdenv,
  util-linuxMinimal,
  wrapGAppsHook,
  zlib,
  # Boolean flags
  withGtk ? false,
}:

stdenv.mkDerivation rec {
  pname =
    if withGtk then
      "snes9x-gtk"
    else
      "snes9x";
  version = "1.62.3";
stdenv.mkDerivation (finalAttrs: {
  pname = "snes9x" + lib.optionalString withGtk "-gtk";
  version = "1.62.3-unstable-2024-04-22";

  src = fetchFromGitHub {
    owner = "snes9xgit";
    repo = "snes9x";
    rev = version;
    rev = "582128bce7ccf4e3cf7848ae9f6a729a1ebad4c4";
    fetchSubmodules = true;
    hash = "sha256-+KHpvz7nfwGXjzDAK/V+2JDRT1sa0kXDkg7XcRyvSP8=";
    hash = "sha256-fJ1g/L7oA9bhEawTsWjfLl1dDIKEGI+pcpWQCTutyR8=";
  };

  nativeBuildInputs = [
@@ -59,10 +57,11 @@ stdenv.mkDerivation rec {
    minizip
    zlib
  ]
  # on non-Linux platforms this will build without sound support on X11 build
  ++ lib.optionals stdenv.isLinux [
    alsa-lib
    pulseaudio
    libselinux
    util-linuxMinimal # provides libmount
  ]
  ++ lib.optionals (!withGtk) [
    libpng
@@ -72,42 +71,43 @@ stdenv.mkDerivation rec {
  ++ lib.optionals withGtk [
    gtkmm3
    libepoxy
    libselinux
    libXdmcp
    libXrandr
    pcre2
    portaudio
    SDL2
    util-linuxMinimal # provides libmount
  ];

  configureFlags =
    lib.optional stdenv.hostPlatform.sse4_1Support "--enable-sse41"
    ++ lib.optional stdenv.hostPlatform.avx2Support "--enable-avx2";
  hardeningDisable = [ "format" ];

  configureFlags = lib.optionals stdenv.hostPlatform.sse4_1Support [
    "--enable-sse41"
  ]
  ++ lib.optionals stdenv.hostPlatform.avx2Support [
    "--enable-avx2"
  ];

  preConfigure = ''
    cd ${if withGtk then "gtk" else "unix"}
  '';

  installPhase = lib.optionalString (!withGtk) ''
    runHook preInstall

    install -Dm755 snes9x -t "$out/bin/"
    install -Dm644 snes9x.conf.default -t "$out/share/doc/${pname}/"
    install -Dm644 snes9x.conf.default -t "$out/share/doc/${finalAttrs.pname}/"
    install -Dm644 ../docs/{control-inputs,controls,snapshots}.txt -t \
      "$out/share/doc/${pname}/"
      "$out/share/doc/${finalAttrs.pname}/"

    runHook postInstall
  '';

  preConfigure = if withGtk then "cd gtk" else "cd unix";

  enableParallelBuilding = true;

  meta = with lib;
    let
  meta = let
    interface = if withGtk then "GTK" else "X11";
  in
    {
      homepage = "https://www.snes9x.com";
      description = "Super Nintendo Entertainment System (SNES) emulator, ${interface} version";

      longDescription = ''
        Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
        emulator. It basically allows you to play most games designed for the SNES
@@ -116,13 +116,16 @@ stdenv.mkDerivation rec {

        Version build with ${interface} interface.
      '';

      license = licenses.unfreeRedistributable // {
        url = "https://github.com/snes9xgit/snes9x/blob/${version}/LICENSE";
      license = lib.licenses.unfreeRedistributable // {
        url = "https://github.com/snes9xgit/snes9x/blob/${finalAttrs.src.rev}/LICENSE";
      };
      maintainers = with maintainers; [ qknight thiagokokada ];
      platforms = platforms.unix;
      broken = (withGtk && stdenv.isDarwin);
      mainProgram = "snes9x";
      maintainers = with lib.maintainers; [
        AndersonTorres
        qknight
        thiagokokada
      ];
      platforms = lib.platforms.unix;
      broken = (withGtk && stdenv.isDarwin);
    };
}
})
+1 −3
Original line number Diff line number Diff line
@@ -2795,9 +2795,7 @@ with pkgs;
  simplenes = callPackage ../applications/emulators/simplenes { };
  snes9x = callPackage ../applications/emulators/snes9x { };
  snes9x-gtk = callPackage ../applications/emulators/snes9x {
  snes9x-gtk = snes9x.override {
    withGtk = true;
  };