[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Please unblock tome/2.3.5-2



Hi,

        This upload fixes an important bug with made the game unplayable
 on amd64 (and, really, any arch where long != 32bits).  This is a small
 change, and is tested. The full debdiff is attached, as you can see,
 this is tiny.

        manoj

--- tome-2.3.5/debian/control
+++ tome-2.3.5/debian/control
@@ -1,6 +1,6 @@
 Source: tome
 VCS-Git: git://git.debian.org/~srivasta/debian/tome.git
-VCS-Browser: http://git.debian.org/git/users/srivasta/debian/tome.git
+VCS-Browser: http://git.debian.org/?p=users/srivasta/debian/tome.git;a=summary
 Section: non-free/games
 Priority: optional
 Maintainer: Manoj Srivastava <srivasta@debian.org>
@@ -9,7 +9,7 @@
  libsdl1.2-dev | libsdl-dev, libsdl-mixer1.2-dev,
  libsdl-gfx1.2-dev, libsdl-image1.2-dev, libsdl-ttf2.0-dev,
  libsdl-net1.2-dev
-Standards-Version: 3.7.3.0
+Standards-Version: 3.8.0.0
 
 Package: tome
 Architecture: any
diff -u tome-2.3.5/debian/changelog tome-2.3.5/debian/changelog
--- tome-2.3.5/debian/changelog
+++ tome-2.3.5/debian/changelog
@@ -1,3 +1,28 @@
+tome (2.3.5-2) unstable; urgency=low
+
+  * [f4042dd] Fix code which needed a 32 bit int to not use int/long
+    On amd64, but not on i386, tome produces LUA errors at various
+    times. The errors occur at savefile load, when wileding a weapon,
+    unweilding a weapon, and for other events. The same homedir, same
+    savefiles, same config, same etc., does not produce errors in the
+    32bit build of the package.
+
+    The error seems to be that the type Number needs to be a 32bit wide
+    integer; and seems to be defined by default as an long, with an option
+    to define it as an int for amd64. However, for the 11 arches Debian
+    supports, this would lead to a morass of selecting architectures in
+    the makefile to override the type; a better solution is to use
+    stdint.h and use a type which is 32 bits wide by design: int32_t.
+
+    Bug fix: "frequent LUA errors on amd64, possibly influencing game
+    logic", thanks to jrodman@debbugs.spamportal.net</a>; The fix was
+    inspired by a different fix proposed by Daniel White.
+   
+    This fixes the LUA errors, and             (Closes: Bug#419825)
+    This is an important bug fix.
+
+ -- Manoj Srivastava <srivasta@debian.org>  Tue, 21 Oct 2008 08:36:01 -0500
+
 tome (2.3.5-1) unstable; urgency=low
 
   * New upstream release
--- tome-2.3.5.orig/src/lua/llimits.h
+++ tome-2.3.5/src/lua/llimits.h
@@ -10,6 +10,7 @@
 
 #include <limits.h>
 #include <stddef.h>
+#include <stdint.h>
 
 
 @@ -36,7 +37,7 @@
 ** GREP LUA_NUMBER to change that
 */
 #ifndef LUA_NUM_TYPE
-#define LUA_NUM_TYPE long
+#define LUA_NUM_TYPE int32_t
 #endif
 
 typedef LUA_NUM_TYPE Number;
@@ -50,7 +51,7 @@
 
 
 
-typedef unsigned long lint32;  /* unsigned int with at least 32 bits */
+typedef int_least32_t lint32;  /* unsigned int with at least 32 bits */
 
 
 #define MAX_SIZET      ((size_t)(~(size_t)0)-2)


-- 
Entropy has us outnumbered.  -- Solomon Short
Manoj Srivastava <srivasta@acm.org> <http://www.golden-gryphon.com/>  
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C


Reply to: