Package: ghemical
Version: 1.51-1
Severity: important
Justification: fails to build from source

The latest version of ghemical makes some assumptions about relative
type sizes that hold only on 32-bit platforms, leading to build errors
on 64-bit platforms:

} ./project.cpp: In member function 'void project::RenderScene(graphics_view*, 
project::rmode, bool)':
} ./project.cpp:2588: error: cast from 'atom*' to 'i32u' loses precision
} ./project.cpp:2651: error: cast from 'atom*' to 'i32u' loses precision
} ./project.cpp:2711: error: cast from 'atom*' to 'i32u' loses precision

(See
http://buildd.debian.org/fetch.php?&pkg=ghemical&ver=1.51-1&arch=alpha&stamp=1123736439&file=log&as=raw
for a complete build log illustrating the problem.)

Having taken a look at the code, my conclusion is that a proper fix
may take some doing -- the current logic involves attempting to stuff
a pointer to an atom object into a slot (defined by the OpenGL API, so
not feasible to change) that only accepts unsigned ints, and then to
convert it back on demand, whereas setting up and using a formal index
would be safer.

Alternatively, I suppose it would be possible to keep the current
architecture relatively intact by arranging to convert pointers to and
from *pairs* of ints on 64-bit platforms (which, BTW, should be
detected by having configure check sizeof(void*), not by hardcoding a
list of relevant architectures).

At any rate, I'm afraid I don't have time to offer up an actual patch.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.12.3
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to