Trouble Running Armagetron on gentoo Linux

For all the help you need with Armagetron!
Dreforian
On Lightcycle Grid
Posts: 14
Joined: Fri Oct 20, 2006 10:58 pm

Post by Dreforian »

$ ls -l /usr/lib/*xml2*
-rw-r--r-- 1 root root 2065824 2006-10-20 18:40 /usr/lib/libxml2.a
-rw-r--r-- 1 root root 803 2006-10-20 18:40 /usr/lib/libxml2.la
lrwxrwxrwx 1 root root 17 2006-10-20 18:40 /usr/lib/libxml2.so -> libxml2.so.2.6.26
lrwxrwxrwx 1 root root 17 2006-10-20 18:40 /usr/lib/libxml2.so.2 -> libxml2.so.2.6.26
-rwxr-xr-x 1 root root 1292192 2006-10-20 18:40 /usr/lib/libxml2.so.2.6.26
-rw-r--r-- 1 root root 201 2006-10-20 18:40 /usr/lib/xml2Conf.sh
User avatar
Lucifer
Project Developer
Posts: 8743
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

I declare a broken package, which is a finger-pointing way of saying "I'm stumped now"
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
Dreforian
On Lightcycle Grid
Posts: 14
Joined: Fri Oct 20, 2006 10:58 pm

Post by Dreforian »

I decided to install the latest Nvidia driver, I'll find out tommorow if that makes a difference but it seems doubtful.
Dreforian
On Lightcycle Grid
Posts: 14
Joined: Fri Oct 20, 2006 10:58 pm

Post by Dreforian »

I discovered something interesting. All the libraries I need are hiding in usr/lib, while Arma is trying to get to them in usr/local/lib. there happens to be only one lib file in there and its not the right one.

here's an article I found concerning conventions for libraries, shared and whatnot:
http://tldp.org/HOWTO/Program-Library-H ... aries.html

Now I'd like to find out how to either a) have it so arma looks for the libraries it needs in the right directory or less desirabley, b) to set up the system so that it regularly looks in usr/local/lib for libraries if option a isnt possible.

any thoughts?

edit: oops, I may be wrong here since I think I'm confusing what happened with my system with some of the other (similar) errors I've found online while searching for a solution. Still this seems like an easily fixed problem if all it is is a misplaced file. any specific version of the xml2 library I should be using?
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Dreforian wrote:any specific version of the xml2 library I should be using?
AA requires version 2.6 of libxml2. 2.6.12 if you want to be sure to be able to use it even when new resource formats come out.

But, umm, the libraries actually belong into /usr/lib, here's my listing (gentoo):

Code: Select all

manuel@gonzo ~ $ ls /usr/lib/libxml2* -l
-rw-r--r--  1 root root 1270916 Aug 12 14:32 /usr/lib/libxml2.a
-rw-r--r--  1 root root     801 Aug 12 14:32 /usr/lib/libxml2.la
lrwxrwxrwx  1 root root      17 Aug 12 14:32 /usr/lib/libxml2.so -> libxml2.so.2.6.26
lrwxrwxrwx  1 root root      17 Aug 12 14:32 /usr/lib/libxml2.so.2 -> libxml2.so.2.6.26
-rwxr-xr-x  1 root root  973036 Aug 12 14:32 /usr/lib/libxml2.so.2.6.26
And, if the dynamic linker is set up correctly, that's where they're looked for. /usr/local/lib should be checked, too, but that's irrelevant here. Yould you try the following command?

Code: Select all

manuel@gonzo ~ $ ldd /usr/bin/armagetronad
        linux-gate.so.1 =>  (0xffffe000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7f60000)
        libSDL_image-1.2.so.0 => /usr/lib/libSDL_image-1.2.so.0 (0xb7f48000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7f2e000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7f11000)
        libz.so.1 => /lib/libz.so.1 (0xb7f02000)
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb7e9d000)
        libGL.so.1 => //usr//lib/opengl/nvidia/lib/libGL.so.1 (0xb7e23000)
        libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0xb7dc0000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7cd2000)
        libm.so.6 => /lib/tls/libm.so.6 (0xb7cb0000)
        libstdc++.so.5 => /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/libstdc++.so.5 (0xb7bfb000)
        libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0xb7bf2000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7ade000)
        /lib/ld-linux.so.2 (0xb7f94000)
        libpng.so.3 => /usr/lib/libpng.so.3 (0xb7abf000)
        libtiff.so.3 => /usr/lib/libtiff.so.3 (0xb7a75000)
        libGLcore.so.1 => //usr//lib/opengl/nvidia/lib/libGLcore.so.1 (0xb7324000)
        libnvidia-tls.so.1 => //usr//lib/opengl/nvidia/lib/libnvidia-tls.so.1 (0xb7322000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb7315000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb7243000)
        libdl.so.2 => /lib/libdl.so.2 (0xb723f000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb723c000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7235000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb7231000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb722c000)
manuel@gonzo ~ $
where /usr/bin/armagetronad is the place the executable is actually installed in, this may be /usr/local/bin or /usr/games, depending on the mood of the packager. The output for me is given for reference, you're likely to get an error of some sorts, hopefully a more insightful one. The initial error sort of claims the library isn't there at all.

If all else fails, unmerging both armagetronad and libxml2, checking that the xml2 files in /usr/lib really are gone, then reemerging amagetronad may help.
Dreforian
On Lightcycle Grid
Posts: 14
Joined: Fri Oct 20, 2006 10:58 pm

Post by Dreforian »

poked around the directories you specified and discovered something special

instead of armagetronad, armagetronad-master and armagetronad-stat going into "/usr/games/lib/armagetronad" they went into "/usr/games/lib64/armagetronad"

also, instead of an executable in /usr/games/bin I foun a shell script:
#!/bin/bash
#
# starts Armagetron Advanced from the installation directory

GAMES_LIBDIR=/usr/games/lib/armagetronad
GAMES_DATADIR=/usr/share/games
GAMES_SYSCONFDIR=/etc/games
PN=armagetronad
if test ! -r $HOME/.armagetronad ; then
mkdir $HOME/.armagetronad

if test -r $HOME/.ArmageTronrc ; then
#migrage very old configuration
echo "Porting very old configuration..."
mkdir $HOME/.armagetronad/var
mv $HOME/.ArmageTronrc $HOME/.armagetronad/var/user.cfg
fi
fi

if test ! -r $HOME/.armagetronad/var ; then
#migrate old configuration
files=$( find $HOME/.armagetronad -type f -maxdepth 1 )

mkdir $HOME/.armagetronad/var

test "$files" != "" && echo "Porting old configuration..." && mv $files $HOME/.armagetronad/var
fi

if test "x$1" = "x-h" ; then
echo -e "\n\nTo uninstall Armagetron Advanced, type armagetronad --uninstall."
fi

if test "x$1" = "x--uninstall" ; then
emerge unmerge armagetronad
else
$GAMES_LIBDIR/$PN --datadir $GAMES_DATADIR/$PN --configdir $GAMES_SYSCONFDIR/$PN \
--userdatadir $HOME/.armagetronad $*
fi
since when I merged armagetronad it created usr/games/lib64 and put files in there instead of in usr/games/lib the shell script in usr/games/bin was pointing to files that werent there.

I finally got the game running by changing the first line to GAMES_LIBDIR=/usr/games/lib64/armagetronad

In retrospect I suppose it might have been a good idea to read the stickies in the support forum and post my system specs (running on an amd64 with 64 bit sabayon); might have come to the solution much faster.

then again I did learn a lot poking around 8)

Thanks for the help!
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Glad it's resolved, but that script is strange. It looks like the old startup script from 0.2.7, but you were having problems with xml2 which is only used since 0.2.8. What version of AA does your portage tell you it would install? Could you attach the ebuild file here? We may want to bump this thread to its maintainer so he can make special provisions for systems with lib64.
Dreforian
On Lightcycle Grid
Posts: 14
Joined: Fri Oct 20, 2006 10:58 pm

Post by Dreforian »

I forgot to look for this when I on my gentoo system so I looked it up at home on http://www.gentoo-portage.com which returned only one unmasked ebuild each for arma and arma-ded ( which look like the same ones I used, tagged with amd64)

ebuild for armagetronad:

# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-action/armagetronad/armagetronad-0.2.7.1-r1.ebuild,v 1.2 2006/09/08 05:49:06 dertobi123 Exp $


inherit flag-o-matic eutils games

DESCRIPTION="3d tron lightcycles, just like the movie"
HOMEPAGE="http://armagetronad.sourceforge.net/"
SRC_URI="mirror://sourceforge/armagetronad/${P}.tar.bz2
!dedicated? (
http://armagetron.sourceforge.net/addon ... nds_fq.zip
http://armagetron.sourceforge.net/addons/moviepack.zip
)"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ppc x86"
IUSE="dedicated"

RDEPEND="
!dedicated? (
sys-libs/zlib
virtual/opengl
virtual/glu
media-libs/libsdl
media-libs/sdl-image
media-libs/jpeg
media-libs/libpng )"
DEPEND="${RDEPEND}
!dedicated? ( app-arch/unzip )"

src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}"/${P}-gcc4.patch
epatch "${FILESDIR}"/${P}-security-1.patch
}

src_compile() {
filter-flags -fno-exceptions
if use dedicated; then
egamesconf --disable-glout || die "egamesconf failed"
else
egamesconf || die "egamesconf failed"
fi
emake || die "emake failed"
make documentation || "make doc failed"
}

src_install() {
dohtml doc/*.html
docinto html/net
dohtml doc/net/*.html
newicon tron.ico ${PN}.ico
exeinto "${GAMES_LIBDIR}/${PN}"
if use dedicated; then
doexe src/tron/${PN}-dedicated || die "copying files"
else
doexe src/tron/${PN} || die "copying files"
fi
doexe src/network/armagetronad-* || die "copying files"
insinto "${GAMES_DATADIR}/${PN}"
doins -r log language || die "copying files"
if ! use dedicated; then
doins -r arenas models sound textures music || die "copying files"
fi
insinto "${GAMES_SYSCONFDIR}/${PN}"
doins -r config/* || die "copying files"
if use dedicated; then
dogamesbin "${FILESDIR}/${PN}-ded"
fi
cd "${S}"
insinto "${GAMES_DATADIR}/${PN}"
if ! use dedicated; then
dogamesbin "${FILESDIR}/${PN}"
insinto "${GAMES_DATADIR}/${PN}"
doins -r ../moviepack ../moviesounds || die "copying movies"
make_desktop_entry armagetronad "Armagetron Advanced" ${PN}.ico
fi
prepgamesdirs
}
cant attach ebuilds appearently :/
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Bizarre. That's 0.2.7.1. It shouldn't require libxml2 at all. Sure your distro uses the original gentoo ebuild for this?
Dreforian
On Lightcycle Grid
Posts: 14
Joined: Fri Oct 20, 2006 10:58 pm

Post by Dreforian »

I checked and its definately the same version. maybe the maintainer planned on packaging the latest version and had some trouble or somesuch and decided to use an earlier version, then forgot to change some files appropriately?
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Dunno. /me shrugs and puts this to the X-Files.
Post Reply