about summary refs log tree commit diff
path: root/pkgs/by-name/do/dosbox-staging/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/do/dosbox-staging/package.nix')
-rw-r--r--pkgs/by-name/do/dosbox-staging/package.nix194
1 files changed, 71 insertions, 123 deletions
diff --git a/pkgs/by-name/do/dosbox-staging/package.nix b/pkgs/by-name/do/dosbox-staging/package.nix
index 4fa16600d1d55..1241385322b8a 100644
--- a/pkgs/by-name/do/dosbox-staging/package.nix
+++ b/pkgs/by-name/do/dosbox-staging/package.nix
@@ -1,100 +1,47 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, SDL2
-, SDL2_image
-, SDL2_net
-, alsa-lib
-, copyDesktopItems
-, darwin
-, fluidsynth
-, glib
-, gtest
-, iir1
-, libGL
-, libGLU
-, libjack2
-, libmt32emu
-, libogg
-, libpng
-, libpulseaudio
-, libslirp
-, libsndfile
-, makeDesktopItem
-, makeWrapper
-, meson
-, ninja
-, opusfile
-, pkg-config
-, speexdsp
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  SDL2,
+  SDL2_image,
+  SDL2_net,
+  alsa-lib,
+  darwin,
+  fluidsynth,
+  glib,
+  gtest,
+  iir1,
+  libGL,
+  libGLU,
+  libjack2,
+  libmt32emu,
+  libogg,
+  libpng,
+  zlib-ng,
+  libpulseaudio,
+  libslirp,
+  libsndfile,
+  makeWrapper,
+  meson,
+  ninja,
+  opusfile,
+  pkg-config,
+  speexdsp,
+  nix-update-script,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dosbox-staging";
-  version = "0.80.1";
+  version = "0.81.1";
 
   src = fetchFromGitHub {
     owner = "dosbox-staging";
     repo = "dosbox-staging";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-I90poBeLSq1c8PXyjrx7/UcbfqFNnnNiXfJdWhLPGMc=";
+    hash = "sha256-XGssEyX+AVv7/ixgGTRtPFjsUSX0FT0fhP+TXsFl2fY=";
   };
 
-  patches = [
-    # Pull missind SDL2_net dependency:
-    #   https://github.com/dosbox-staging/dosbox-staging/pull/2358
-    (fetchpatch {
-      name = "sdl2-net.patch";
-      url = "https://github.com/dosbox-staging/dosbox-staging/commit/1b02f187a39263f4b0285323dcfe184bccd749c2.patch";
-      hash = "sha256-Ev97xApInu6r5wvI9Q7FhkSXqtMW/rwJj48fExvqnT0=";
-    })
-
-    # Pull missing SDL2_image dependency:
-    #   https://github.com/dosbox-staging/dosbox-staging/pull/2239
-    (fetchpatch {
-      name = "sdl2-image.patch";
-      url = "https://github.com/dosbox-staging/dosbox-staging/commit/ca8b7a906d29a3f8ce956c4af7dc829a6ac3e229.patch";
-      hash = "sha256-WtTVSWWSlfXrdPVsnlDe4P5K/Fnj4QsOzx3Wo/Kusmg=";
-      includes = [ "src/gui/meson.build" ];
-    })
-  ]
-  # Pagesize detection via syscall; remove when next stable version arrives
-  ++ [
-    (fetchpatch {
-      # Added as a parent commit of 7e20f6e
-      # Fix ppc64le backend and 64K page size support (#2828)
-      name = "meson-add-ppc64.patch";
-      url = "https://github.com/dosbox-staging/dosbox-staging/commit/765bcc2b1d87050a4ea366bf22e1db075ad5660b.patch";
-      hash = "sha256-RtkidyF7w6RrPmCKK4Bd+3FtAn/+/38xk2cl32+yzxw=";
-      includes = [ "meson.build" ];
-    })
-    (fetchpatch {
-      # Added as a parent commit of 7e20f6e
-      # Account for debian powerpc prefix (instead of ppc)
-      name = "meson-powerpc64le.patch";
-      url = "https://github.com/dosbox-staging/dosbox-staging/commit/d44aa7441cd871ffac08974f22af7a735a839288.patch";
-      hash = "sha256-oMZtfmB1CRlDWyXwEWc3XzC+XxKazXDgo+jUiNBoJDw=";
-      includes = [ "meson.build" ];
-    })
-    (fetchpatch {
-      # Added as a parent commit of 7e20f6e
-      # Restore the PowerPC dynrec core to working order
-      name = "meson-option-write-or-execute.patch";
-      url = "https://github.com/dosbox-staging/dosbox-staging/commit/ef86642de390839afc77b2b591a6ea9ac43909b3.patch";
-      hash = "sha256-htOKEaXRRy28XNMX/t6uFTBLCkTr7YPtfmI9UyIBiz4=";
-      includes = [ "meson_options.txt" ];
-    })
-    (fetchpatch {
-      # Use a system call to detect the page size
-      name = "meson-detect-pagesize-by-syscall.patch";
-      url = "https://github.com/dosbox-staging/dosbox-staging/commit/7e20f6e401956a7a308f1b3462294d7ac9fa5db8.patch";
-      hash = "sha256-QW9lpHWCYSlQFgTqX/UxHAAWisz4wfPrdjLqROn/wR0=";
-    })
-  ];
-
   nativeBuildInputs = [
-    copyDesktopItems
     gtest
     makeWrapper
     meson
@@ -102,43 +49,40 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
   ];
 
-  buildInputs = [
-    fluidsynth
-    glib
-    iir1
-    libGL
-    libGLU
-    libjack2
-    libmt32emu
-    libogg
-    libpng
-    libpulseaudio
-    libslirp
-    libsndfile
-    opusfile
-    SDL2
-    SDL2_image
-    SDL2_net
-    speexdsp
-  ] ++ lib.optionals stdenv.isLinux [
-    alsa-lib
-  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
-    AudioUnit
-    Carbon
-    Cocoa
-  ]);
+  buildInputs =
+    [
+      fluidsynth
+      glib
+      iir1
+      libGL
+      libGLU
+      libjack2
+      libmt32emu
+      libogg
+      libpng
+      zlib-ng
+      libpulseaudio
+      libslirp
+      libsndfile
+      opusfile
+      SDL2
+      SDL2_image
+      SDL2_net
+      speexdsp
+    ]
+    ++ lib.optionals stdenv.isLinux [ alsa-lib ]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk.frameworks;
+      [
+        AudioUnit
+        Carbon
+        Cocoa
+      ]
+    );
 
-  desktopItems = [
-    (makeDesktopItem {
-      name = "dosbox-staging";
-      exec = "dosbox-staging";
-      icon = "dosbox-staging";
-      comment = "x86 dos emulator enhanced";
-      desktopName = "DosBox-Staging";
-      genericName = "DOS emulator";
-      categories = [ "Emulator" "Game" ];
-    })
-  ];
+  postInstall = ''
+    install -Dm644 $src/contrib/linux/dosbox-staging.desktop $out/share/applications/
+  '';
 
   postFixup = ''
     # Rename binary, add a wrapper, and copy manual to avoid conflict with
@@ -154,6 +98,8 @@ stdenv.mkDerivation (finalAttrs: {
     popd
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = {
     homepage = "https://dosbox-staging.github.io/";
     description = "A modernized DOS emulator";
@@ -164,9 +110,11 @@ stdenv.mkDerivation (finalAttrs: {
       practices.
     '';
     license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ joshuafern AndersonTorres ];
+    maintainers = with lib.maintainers; [
+      joshuafern
+      AndersonTorres
+    ];
     platforms = lib.platforms.unix;
     priority = 101;
   };
 })
-# TODO: report upstream about not finding SDL2_net