summary refs log tree commit diff
path: root/pkgs/misc/emulators/zsnes
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2015-07-10 13:42:39 +0300
committerNikolay Amiantov <ab@fmap.me>2015-07-28 12:53:57 +0300
commit30facde98c9e1b7a5d27a11d7eb0c87cbc8cbd1a (patch)
treed4245648132452b8b86cd0f964e5575055e1423c /pkgs/misc/emulators/zsnes
parentc60ce5fa9b5a7cc6363aa9b3bbce53cd74b14b4b (diff)
downloadnixpkgs-30facde98c9e1b7a5d27a11d7eb0c87cbc8cbd1a.tar
nixpkgs-30facde98c9e1b7a5d27a11d7eb0c87cbc8cbd1a.tar.gz
nixpkgs-30facde98c9e1b7a5d27a11d7eb0c87cbc8cbd1a.tar.bz2
nixpkgs-30facde98c9e1b7a5d27a11d7eb0c87cbc8cbd1a.tar.lz
nixpkgs-30facde98c9e1b7a5d27a11d7eb0c87cbc8cbd1a.tar.xz
nixpkgs-30facde98c9e1b7a5d27a11d7eb0c87cbc8cbd1a.tar.zst
nixpkgs-30facde98c9e1b7a5d27a11d7eb0c87cbc8cbd1a.zip
zsnes: use Debian patches, fix segfault on saving state
Diffstat (limited to 'pkgs/misc/emulators/zsnes')
-rw-r--r--pkgs/misc/emulators/zsnes/default.nix31
-rw-r--r--pkgs/misc/emulators/zsnes/zsnes-1.51-libpng15.patch12
-rw-r--r--pkgs/misc/emulators/zsnes/zsnes.patch80
3 files changed, 23 insertions, 100 deletions
diff --git a/pkgs/misc/emulators/zsnes/default.nix b/pkgs/misc/emulators/zsnes/default.nix
index bca81a4b6b3..23930ac624c 100644
--- a/pkgs/misc/emulators/zsnes/default.nix
+++ b/pkgs/misc/emulators/zsnes/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, nasm, SDL, zlib, libpng, ncurses, mesa}:
+{stdenv, fetchurl, fetchpatch, nasm, SDL, zlib, libpng, ncurses, mesa}:
 
 stdenv.mkDerivation {
   name = "zsnes-1.51";
@@ -8,12 +8,27 @@ stdenv.mkDerivation {
     sha256 = "08s64qsxziv538vmfv38fg1rfrz5k95dss5zdkbfxsbjlbdxwmi8";
   };
 
-  # copied from arch linux, fixes gcc-4.8 compatibility
-  patches = [ ./zsnes.patch ];
-
-  postPatch = ''
-    patch -p0 < ${./zsnes-1.51-libpng15.patch}
-  '';
+  patches = [ (fetchpatch {
+                url = "https://raw.githubusercontent.com/emillon/zsnes/fc160b2538738995f600f8405d23a66b070dac02/debian/patches/0003-gcc-4.3-ftbfs.patch";
+                sha256 = "1rlqjxnx21iz03414bamqrpysaxbvmfacfnk111233yxjd4vhq89";
+              })
+              (fetchpatch {
+                url = "https://raw.githubusercontent.com/emillon/zsnes/fc160b2538738995f600f8405d23a66b070dac02/debian/patches/0009-hat-events.patch";
+                sha256 = "1az5vxjff22hqlsv0nmliax3ziwcr9kc75na805v9f66s8fmj5rf";
+              })
+              (fetchpatch {
+                url = "https://raw.githubusercontent.com/emillon/zsnes/fc160b2538738995f600f8405d23a66b070dac02/debian/patches/0010-Fix-build-with-libpng-1.5.patch";
+                sha256 = "1vjfraxjw6f496j3w8r581m3lbn16s0nx3hskzj14hl9ycfskhnr";
+              })
+              (fetchpatch {
+                url = "https://raw.githubusercontent.com/emillon/zsnes/fc160b2538738995f600f8405d23a66b070dac02/debian/patches/0012-Fix-build-with-gcc-4.7.patch";
+                sha256 = "1d8m0vxi8wf9z4wfjx2cc48p1wy2qadgvcm88dg1jncg334jwfrg";
+              })
+              (fetchpatch {
+                url = "https://raw.githubusercontent.com/emillon/zsnes/fc160b2538738995f600f8405d23a66b070dac02/debian/patches/zsnes-linux-resume-freeze-fix.patch";
+                sha256 = "0gvf6gsqxxfah1s80ya2l5yils2kv9xa6faajdyby7xipzkc6qc7";
+              })
+            ];
 
   buildInputs = [ nasm SDL zlib libpng ncurses mesa ];
 
@@ -22,7 +37,7 @@ stdenv.mkDerivation {
     sed -i "/^STRIP/d" configure
   '';
 
-  configureFlags = "--enable-release";
+  configureFlags = [ "--enable-release" ];
 
   meta = {
     description = "A Super Nintendo Entertainment System Emulator";
diff --git a/pkgs/misc/emulators/zsnes/zsnes-1.51-libpng15.patch b/pkgs/misc/emulators/zsnes/zsnes-1.51-libpng15.patch
deleted file mode 100644
index b32c3096754..00000000000
--- a/pkgs/misc/emulators/zsnes/zsnes-1.51-libpng15.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Use existing png_set_IHDR() and stop accessing PNG structure members directly
-
---- src/zip/zpng.c
-+++ src/zip/zpng.c
-@@ -129,7 +129,6 @@
-         png_set_IHDR(png_ptr, info_ptr, width, height, 8,
-                      PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE,
-                      PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
--        info_ptr->color_type = PNG_COLOR_TYPE_RGB;
- 
-         //Allocate an array of scanline pointers
-         row_pointers = (png_bytep*)malloc(height*sizeof(png_bytep));
diff --git a/pkgs/misc/emulators/zsnes/zsnes.patch b/pkgs/misc/emulators/zsnes/zsnes.patch
deleted file mode 100644
index d5d681ae67a..00000000000
--- a/pkgs/misc/emulators/zsnes/zsnes.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff -aur zsnes_1_51//src/Makefile.in zsnes_1_51_new//src/Makefile.in
---- zsnes_1_51//src/Makefile.in	2007-01-24 21:54:12.000000000 +0100
-+++ zsnes_1_51_new//src/Makefile.in	2010-09-06 00:03:04.715810431 +0200
-@@ -95,7 +95,7 @@
- %.o: %.cpp
- 	@CXX@ @CXXFLAGS@ -o $@ -c $<
- %.o %.h: %.psr $(PSR)
--	./$(PSR) @PSRFLAGS@ -gcc @CC@ -compile -flags "@CFLAGS@ -O1" -cheader $*.h -fname $* $*.o $<
-+	./$(PSR) @PSRFLAGS@ -gcc "@CC@" -compile -flags "@CFLAGS@ -O1 -D_FORTIFY_SOURCE=0" -cheader $*.h -fname $* $*.o $<
- 
- default: main
- all: main tools
-@@ -133,7 +133,7 @@
- 
- include makefile.dep
- makefile.dep: $(TOOL_D)/depbuild Makefile
--	$(TOOL_D)/depbuild @CC@ "@CFLAGS@" @NASMPATH@ "@NFLAGS@" $(Z_OBJS) > makefile.dep
-+	$(TOOL_D)/depbuild "@CC@" "@CFLAGS@" "@NASMPATH@" "@NFLAGS@" $(Z_OBJS) > makefile.dep
- 
- Makefile: Makefile.in config.status
- 	./config.status
-diff -aur zsnes_1_51//src/parsegen.cpp zsnes_1_51_new//src/parsegen.cpp
---- zsnes_1_51//src/parsegen.cpp	2007-10-31 05:30:26.000000000 +0100
-+++ zsnes_1_51_new//src/parsegen.cpp	2010-09-05 15:48:36.903333444 +0200
-@@ -19,6 +19,9 @@
- Config file handler creator by Nach (C) 2005-2007
- */
- 
-+#include <cstring>
-+#include <cstdlib>
-+
- #if !defined(__GNUC__) && !defined(_MSC_VER)
- #error You are using an unsupported compiler
- #endif
-@@ -1822,7 +1825,7 @@
-   }
- }
- 
--int main(size_t argc, const char *const *const argv)
-+int main(int argc, const char *const *const argv)
- {
-   const char *cheader_file = 0;
-   bool compile = false;
-diff -aur zsnes_1_51//src/tools/depbuild.cpp zsnes_1_51_new//src/tools/depbuild.cpp
---- zsnes_1_51//src/tools/depbuild.cpp	2006-12-27 12:04:05.000000000 +0100
-+++ zsnes_1_51_new//src/tools/depbuild.cpp	2010-09-05 15:48:36.903333444 +0200
-@@ -183,7 +183,7 @@
-   }
- }
- 
--int main(size_t argc, const char *const *const argv)
-+int main(int argc, const char *const *const argv)
- {
-   if (argc < 5)
-   {
-diff -aur zsnes_1_51//src/tools/strutil.h zsnes_1_51_new//src/tools/strutil.h
---- zsnes_1_51//src/tools/strutil.h	2006-12-27 12:04:05.000000000 +0100
-+++ zsnes_1_51_new//src/tools/strutil.h	2010-09-05 15:48:36.903333444 +0200
-@@ -15,6 +15,9 @@
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
- 
-+#include <cstring>
-+#include <cstdlib>
-+
- /*
- This is part of a toolkit used to assist in ZSNES development
- */
-diff -u -r zsnes_1_51/src/tools/depbuild.cpp zsnes_1_51-fix/src/tools/depbuild.cpp
---- zsnes_1_51/src/tools/depbuild.cpp	2006-12-27 12:04:05.000000000 +0100
-+++ zsnes_1_51-fix/src/tools/depbuild.cpp	2012-07-14 16:20:17.759886250 +0200
-@@ -26,6 +26,8 @@
- #include <cstdio>
- using namespace std;
- 
-+#include <unistd.h>
-+
- #include "fileutil.h"
- #include "strutil.h"
-