exult: Update to 1.4.9rc1

This commit is contained in:
Eelco Dolstra 2014-07-22 14:51:05 +02:00
parent ee39b4e82e
commit 9c53065b61
4 changed files with 147 additions and 59 deletions

View File

@ -1,21 +0,0 @@
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:

123
pkgs/games/exult/arch.patch Normal file
View File

@ -0,0 +1,123 @@
diff -aur exult-1.4.9rc1.orig/desktop/exult.desktop exult-1.4.9rc1/desktop/exult.desktop
--- exult-1.4.9rc1.orig/desktop/exult.desktop 2008-07-11 05:41:06.000000000 +0600
+++ exult-1.4.9rc1/desktop/exult.desktop 2012-05-19 13:15:30.616084585 +0600
@@ -1,9 +1,8 @@
[Desktop Entry]
-Encoding=UTF-8
Name=Exult
Comment=Exult Ultima 7 Engine
Exec=exult
-Icon=exult.png
+Icon=exult
Terminal=false
Type=Application
-Categories=Application;Game;RolePlaying;
+Categories=Game;RolePlaying;
diff -aur exult-1.4.9rc1.orig/files/databuf.h exult-1.4.9rc1/files/databuf.h
--- exult-1.4.9rc1.orig/files/databuf.h 2010-03-10 09:07:05.000000000 +0500
+++ exult-1.4.9rc1/files/databuf.h 2012-05-19 12:50:16.856076030 +0600
@@ -18,6 +18,7 @@
#define DATA_H
#include <cstdio>
+#include <cstddef>
#include <cstring>
#include <cassert>
#include <fstream>
diff -aur exult-1.4.9rc1.orig/files/U7obj.h exult-1.4.9rc1/files/U7obj.h
--- exult-1.4.9rc1.orig/files/U7obj.h 2010-02-25 07:52:07.000000000 +0500
+++ exult-1.4.9rc1/files/U7obj.h 2012-05-19 12:50:35.916076137 +0600
@@ -26,6 +26,7 @@
#include <string>
#include <vector>
#include <cstring>
+#include <cstddef>
#include "common_types.h"
#include "utils.h"
diff -aur exult-1.4.9rc1.orig/imagewin/manip.h exult-1.4.9rc1/imagewin/manip.h
--- exult-1.4.9rc1.orig/imagewin/manip.h 2010-08-29 20:26:00.000000000 +0600
+++ exult-1.4.9rc1/imagewin/manip.h 2012-05-19 13:02:45.159413596 +0600
@@ -319,7 +319,7 @@
static uintD copy(uintS src)
{
unsigned int r, g, b;
- split_source(src,r,g,b);
+ ManipBaseSrc<color_s,color_d>::split_source(src,r,g,b);
return ManipBaseDest<color_d>::rgb(r,g,b);
}
static void copy(uintD& dest, uintS src)
diff -aur exult-1.4.9rc1.orig/istring.h exult-1.4.9rc1/istring.h
--- exult-1.4.9rc1.orig/istring.h 2005-06-07 15:55:39.000000000 +0600
+++ exult-1.4.9rc1/istring.h 2012-05-19 13:01:14.886079750 +0600
@@ -162,19 +162,19 @@
_Myt& operator+=(const _Myt& _Right)
{ // append _Right
- append(_Right);
+ this->append(_Right);
return (*this);
}
_Myt& operator+=(const _Elem *_Ptr)
{ // append [_Ptr, <null>)
- append(_Ptr);
+ this->append(_Ptr);
return (*this);
}
_Myt& operator+=(_Elem _Ch)
{ // append 1 * _Ch
- append(static_cast<size_type>(1), _Ch);
+ this->append(static_cast<size_type>(1), _Ch);
return (*this);
}
diff -aur exult-1.4.9rc1.orig/shapes/pngio.cc exult-1.4.9rc1/shapes/pngio.cc
--- exult-1.4.9rc1.orig/shapes/pngio.cc 2010-02-15 18:48:11.000000000 -0200
+++ exult-1.4.9rc1/shapes/pngio.cc 2013-09-22 20:56:37.809763588 -0300
@@ -26,6 +26,7 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
+#include <string.h>
#ifdef HAVE_PNG_H
@@ -79,7 +80,7 @@
}
// Allocate info. structure.
png_infop info = png_create_info_struct(png);
- if (setjmp(png->jmpbuf)) // Handle errors.
+ if (setjmp(png_jmpbuf(png))) // Handle errors.
{
png_destroy_read_struct(&png, &info, 0);
fclose(fp);
@@ -208,7 +209,7 @@
}
// Allocate info. structure.
png_infop info = png_create_info_struct(png);
- if (setjmp(png->jmpbuf)) // Handle errors.
+ if (setjmp(png_jmpbuf(png))) // Handle errors.
{
png_destroy_write_struct(&png, &info);
fclose(fp);
@@ -306,7 +307,7 @@
}
// Allocate info. structure.
png_infop info = png_create_info_struct(png);
- if (setjmp(png->jmpbuf)) // Handle errors.
+ if (setjmp(png_jmpbuf(png))) // Handle errors.
{
png_destroy_read_struct(&png, &info, 0);
fclose(fp);
@@ -395,7 +396,7 @@
}
// Allocate info. structure.
png_infop info = png_create_info_struct(png);
- if (setjmp(png->jmpbuf)) // Handle errors.
+ if (setjmp(png_jmpbuf(png))) // Handle errors.
{
png_destroy_write_struct(&png, &info);
fclose(fp);

View File

@ -1,56 +1,45 @@
{stdenv, fetchurl, SDL, SDL_mixer, zlib, libpng, unzip}: { stdenv, fetchurl, pkgconfig, SDL, libogg, libvorbis, zlib, unzip }:
let let
# Digital recordings of the music on an original Roland MT-32. So # Digital recordings of the music on an original Roland MT-32. So
# we don't need actual MIDI playback capability. # we don't need actual MIDI playback capability.
musicFiles = audio = fetchurl {
[ (fetchurl { url = mirror://sourceforge/exult/exult_audio.zip;
url = mirror://sourceforge/exult/U7MusicOGG_1of2.zip; sha256 = "0s5wvgy9qja06v38g0qwzpaw76ff96vzd6gb1i3lb9k4hvx0xqbj";
md5 = "7746d1a9164fd67509107797496553bf"; };
})
(fetchurl {
url = mirror://sourceforge/exult/U7MusicOGG_2of2.zip;
md5 = "cdae5956d7c52f35e90317913a660123";
})
];
in in
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "exult-1.2"; name = "exult-1.4.9rc1";
src = fetchurl { src = fetchurl {
url = mirror://sourceforge/exult/exult-1.2.tar.gz; url = "mirror://sourceforge/exult/${name}.tar.gz";
md5 = "0fc88dee74a91724d25373ba0a8670ba"; sha256 = "0a03a2l3ji6h48n106d4w55l8v6lni1axniafnvvv5c5n3nz5bgd";
}; };
# Patches for building on x86_64 and gcc 4.x. configureFlags = "--disable-tools";
patches = [
(fetchurl {
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 patches =
./64bits.patch [ # Arch Linux patch set.
./arch.patch
]; ];
buildInputs = [SDL SDL_mixer zlib libpng unzip]; buildInputs = [ pkgconfig SDL libogg libvorbis zlib unzip ];
NIX_CFLAGS_COMPILE = "-I${SDL_mixer}/include/SDL"; enableParallelBuilding = true;
postInstall = postInstall =
'' ''
mkdir -p $out/share/exult/music mkdir -p $out/share/exult/music
for i in $musicFiles; do unzip -o -d $out/share/exult ${audio}
unzip -o -d $out/share/exult/music $i chmod 644 $out/share/exult/*.flx
done ''; # */
'';
meta = { meta = {
homepage = http://exult.sourceforge.net/; homepage = http://exult.sourceforge.net/;
description = "A reimplementation of the Ultima VII game engine"; description = "A reimplementation of the Ultima VII game engine";
maintainers = [stdenv.lib.maintainers.eelco]; maintainers = [ stdenv.lib.maintainers.eelco ];
}; };
} }

View File

@ -10184,10 +10184,7 @@ let
egoboo = callPackage ../games/egoboo { }; egoboo = callPackage ../games/egoboo { };
exult = callPackage ../games/exult { exult = callPackage ../games/exult { };
stdenv = overrideGCC stdenv gcc42;
libpng = libpng12;
};
flightgear = callPackage ../games/flightgear { }; flightgear = callPackage ../games/flightgear { };