about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThiago Kenji Okada <thiagokokada@gmail.com>2024-04-25 17:27:41 +0100
committerGitHub <noreply@github.com>2024-04-25 17:27:41 +0100
commit3a23d44ac8a2da7b3cfe6f99841ff27da787db11 (patch)
tree0405dd202eb3c11eebc2f61b35323f182ab48a5b
parente009f41e31624a48307131b0b6a8a1049e213407 (diff)
parentaebbcc12e40c3d27cc5d885c6e64463776468d29 (diff)
Merge pull request #306652 from atorres1985-contrib/snes9x
snes9x: 1.62.3 -> 1.62.3-unstable-2024-04-22
-rw-r--r--pkgs/by-name/sn/snes9x/package.nix (renamed from pkgs/applications/emulators/snes9x/default.nix)123
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 64 insertions, 63 deletions
diff --git a/pkgs/applications/emulators/snes9x/default.nix b/pkgs/by-name/sn/snes9x/package.nix
index 8f374b7e18183..c3d19bac383b8 100644
--- a/pkgs/applications/emulators/snes9x/default.nix
+++ b/pkgs/by-name/sn/snes9x/package.nix
@@ -1,46 +1,44 @@
-{ 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
-      interface = if withGtk then "GTK" else "X11";
-    in
+  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);
     };
-}
+})
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2a08048d90a56..0909458a92c12 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -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;
   };