From df50191ff5b64c2cb4bb4bc52d5f167c6909cef0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 25 Jun 2008 15:33:07 +0000 Subject: [PATCH] * Really fix Exult on x86_64 now. svn path=/nixpkgs/trunk/; revision=12188 --- pkgs/games/exult/64bits.patch | 21 +++++++++++++++++++++ pkgs/games/exult/default.nix | 3 +++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/games/exult/64bits.patch diff --git a/pkgs/games/exult/64bits.patch b/pkgs/games/exult/64bits.patch new file mode 100644 index 000000000000..49c67cd2f05e --- /dev/null +++ b/pkgs/games/exult/64bits.patch @@ -0,0 +1,21 @@ +diff -ru exult-1.2-orig/usecode/useval.cc exult-1.2/usecode/useval.cc +--- exult-1.2-orig/usecode/useval.cc 2004-05-23 07:07:11.000000000 +0200 ++++ exult-1.2/usecode/useval.cc 2008-06-25 17:27:15.000000000 +0200 +@@ -464,7 +464,7 @@ + if (buflen < 5) + return -1; + *ptr++ = type; +- Write4(ptr, (int)value.ptr); ++ Write4(ptr, 0); + break; + case string_type: + { +@@ -525,7 +525,7 @@ + case pointer_type: + if (buflen < 5) + return false; +- value.ptr = (Game_object*)Read4(ptr); //DON'T dereference this pointer! ++ value.ptr = 0; //DON'T dereference this pointer! + // Maybe add a new type "serialized_pointer" to prevent "accidents"? + return true; + case string_type: diff --git a/pkgs/games/exult/default.nix b/pkgs/games/exult/default.nix index 35ef94c69db7..e6a25f6a163d 100644 --- a/pkgs/games/exult/default.nix +++ b/pkgs/games/exult/default.nix @@ -15,6 +15,9 @@ stdenv.mkDerivation { url = "http://www.rocklinux.net/sources/package/stf/exult/exult-gcc4.patch"; sha256 = "1jlikxcpsi3yfchan3jbyi66fcyr18m7kfmsa946lwh3kzckszm7"; }) + + # From http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/games-engines/exult/files/exult-1.2-64bits.patch?rev=1.1 + ./64bits.patch ]; buildInputs = [SDL SDL_mixer zlib libpng unzip];