Hi there,
I'd like to discuss the possibility of having a 64-bit build of the Linux included with the alphas. The current binary is compiled against 32-bit libraries; it's not an issue as such, since most distros let users install 32-bit libraries on 64-bit systems, but it can be quite bothersome for “average” users.
As an example, KeeperRL alpha7 relies on the following libraries (on Mageia /lib symlinks to /usr/lib, which is the path for 32-bit libraries):
Code:
[akien@cauldron keeperRL_alpha7]$ ldd ./keeper
linux-gate.so.1 (0xf778f000)
libsfml-audio.so.2 => ./libsfml-audio.so.2 (0xf777e000)
libsfml-graphics.so.2 => ./libsfml-graphics.so.2 (0xf7742000)
libsfml-window.so.2 => ./libsfml-window.so.2 (0xf772e000)
libsfml-system.so.2 => ./libsfml-system.so.2 (0xf7723000)
libboost_serialization.so.1.54.0 => ./libboost_serialization.so.1.54.0 (0xf76bb000)
libz.so.1 => /lib/libz.so.1 (0xf7677000)
libm.so.6 => /lib/libm.so.6 (0xf7631000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7616000)
libc.so.6 => /lib/libc.so.6 (0xf745e000)
/lib/ld-linux.so.2 (0xf7790000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf7443000)
libopenal.so.1 => /lib/libopenal.so.1 (0xf73ed000)
libsndfile.so.1 => /lib/libsndfile.so.1 (0xf737b000)
librt.so.1 => /lib/librt.so.1 (0xf7372000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0xf7289000)
libfreetype.so.6 => /lib/libfreetype.so.6 (0xf71f6000)
libGLEW.so.1.7 => ./libGLEW.so.1.7 (0xf7195000)
libjpeg.so.8 => /lib/libjpeg.so.8 (0xf713a000)
libGL.so.1 => /lib/libGL.so.1 (0xf70d0000)
libX11.so.6 => /lib/libX11.so.6 (0xf6f97000)
libXext.so.6 => /lib/libXext.so.6 (0xf6f83000)
libXrandr.so.2 => /lib/libXrandr.so.2 (0xf6f78000)
libdl.so.2 => /lib/libdl.so.2 (0xf6f73000)
libFLAC.so.8 => /lib/libFLAC.so.8 (0xf6f3c000)
libvorbisenc.so.2 => /lib/libvorbisenc.so.2 (0xf6eb0000)
libvorbis.so.0 => /lib/libvorbis.so.0 (0xf6e83000)
libogg.so.0 => /lib/libogg.so.0 (0xf6e7b000)
libbz2.so.1 => /lib/libbz2.so.1 (0xf6e69000)
libpng16.so.16 => /lib/libpng16.so.16 (0xf6e0f000)
libXmu.so.6 => /lib/libXmu.so.6 (0xf6df6000)
libXi.so.6 => /lib/libXi.so.6 (0xf6de4000)
libGLU.so.1 => /lib/libGLU.so.1 (0xf6d5d000)
libglapi.so.0 => /lib/libglapi.so.0 (0xf6d3b000)
libXdamage.so.1 => /lib/libXdamage.so.1 (0xf6d37000)
libXfixes.so.3 => /lib/libXfixes.so.3 (0xf6d31000)
libX11-xcb.so.1 => /lib/libX11-xcb.so.1 (0xf6d2d000)
libxcb-glx.so.0 => /lib/libxcb-glx.so.0 (0xf6d14000)
libxcb-dri2.so.0 => /lib/libxcb-dri2.so.0 (0xf6d0e000)
libxcb-dri3.so.0 => /lib/libxcb-dri3.so.0 (0xf6d0a000)
libxcb-present.so.0 => /lib/libxcb-present.so.0 (0xf6d06000)
libxcb-sync.so.1 => /lib/libxcb-sync.so.1 (0xf6cfe000)
libxcb.so.1 => /lib/libxcb.so.1 (0xf6cdb000)
libxshmfence.so.1 => /lib/libxshmfence.so.1 (0xf6cd8000)
libXxf86vm.so.1 => /lib/libXxf86vm.so.1 (0xf6cd2000)
libdrm.so.2 => /lib/libdrm.so.2 (0xf6cc5000)
libXrender.so.1 => /lib/libXrender.so.1 (0xf6cba000)
libXt.so.6 => /lib/libXt.so.6 (0xf6c5c000)
libXau.so.6 => /lib/libXau.so.6 (0xf6c58000)
libXdmcp.so.6 => /lib/libXdmcp.so.6 (0xf6c51000)
libSM.so.6 => /lib/libSM.so.6 (0xf6c48000)
libICE.so.6 => /lib/libICE.so.6 (0xf6c2e000)
libuuid.so.1 => /lib/libuuid.so.1 (0xf6c28000)
So to run KeeperRL on a 64-bit system, one would need to install all those 32-bit libraries, or they would have to come bundled in the zip file, but I like the fact that KeeperRL relies mostly on system-wide libraries.
So in my opinion the simplest way to rule out this issue would be to provide a 64-bit build as well (since all those libraries linked from /lib are quite common libraries on a live system).
As a workaround for now, Mageia 64-bit users can install the needed libraries with:
urpmi libopenal1 libfreetype6 libglew1.10 libjpeg8 libxrandr2 libxi6
If the game still complains about missing libraries, e.g.
Code:
./keeper: error while loading shared libraries: libfoobar.so.3: cannot open shared object file: No such file or directory
you can find out which package contains this library with “urpmf /usr/lib/libfoobar.so.3” and install it.