Compiling in Ubuntu

Trying to build your own version of Vega Strike and having problems? Unix users, paste your config.log here (stderr output alone is not helpful).
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Compiling in Ubuntu

Post by chuck_starchaser »

I'm an eternal Linux newbie in Ubuntu.
I did an svn up vegastrike, and a number of files were updated; no prob.
Then I cd vegastrike
./configure
But configure fails; says it can't find Python 2.2 or later.
According to Synaptic, I have Python 2.6.4
What could be the problem?
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: Compiling in Ubuntu

Post by klauss »

2.6 may not be in the list of accepted versions.

You can go two ways:
1) Install 2.5 or 2.4, which are supported (I'm not 2.5 is supported, 2.4 is). They can coexist with 2.6
2) Try to build against 2.6, see if it works.

For 2, you'd have to modify configure.ac I believe to include 2.6 in the list. I'm not sure how it's done, when I get home I'll take a look.

Of course 1 is the easiest.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

Thanks.
I took the easy route; installed Python 2.4.
Ran ./configure
Same problem.

Note: I tried to run ./bootstrap-sh before, as per the wiki instructions, and got all
kinds of errors... Could that be why ./configure is not working?

Code: Select all

d@kar:~/vs/vegastrike$ ./bootstrap-sh
VegaStrike Configuration Preparation Tool
  Maintained by Brian A. Lloyd
  (balloyd1@users.sourceforge.net)
Please send bug reports or comments about this script
to the email above or else visit
vegastrike.sourceforge.net for help in using this script

The recommended way to change the behaviour of this script
is to modify the path so that the version of automake or
autoconf you want to use is found first.
Alternately, you can explicitly specify the program to be
used for each in the following variables.
$ACLOCAL, $AUTOMAKE, $AUTOCONF, $AUTOHEADER
and extra arguments/include paths in these variables:
$ACLOCALFLAGS, $AUTOMAKEFLAGS, $AUTOCONFFLAGS, $AUTOHEADERFLAGS
For proper functionality, both aclocal and automake must be the
same version, and autoconf and autoheader should be the same version.

./bootstrap-sh: 99: aclocal: not found
test: 99: -lt: unexpected operator
test: 99: -lt: unexpected operator
./bootstrap-sh: 99: automake: not found
test: 99: -lt: unexpected operator
test: 99: -lt: unexpected operator
./bootstrap-sh: 122: autoheader: not found
test: 122: -lt: unexpected operator
test: 122: -lt: unexpected operator
./bootstrap-sh: 128: autoconf: not found
test: 128: -lt: unexpected operator
test: 128: -lt: unexpected operator
Running aclocal
./bootstrap-sh: 155: aclocal: not found
aclocal execution failed.
Try running svn update
in the directory that bootstrap-sh is in.
If this does not fix the problem, please verify that
aclocal is at least version 1.6
d@kar:~/vs/vegastrike$
Or, I'm logged in as a regular user... Should I log in as the admin user to do all this?
(Bit of a long story; but in Ubuntu the default user is a privileged user; same password as root; but
this friend of mine who set me up with Ubuntu said that's not very safe, so he created yet another user,
which is my current login.)
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

Klauss, my problem with Python was I didn't have the -dev versions.

With help from Nate I got configure to pass, I was then able to make mesher, and by now I've
got Unit Converter working. :D

I wanted to compile vegastrike also; but can't make it... there seems to be a problem with boost...

Code: Select all

make  all-am
make[1]: Entering directory `/home/d/vs/vegastrike'
depbase=`echo boost/1_35/src/list.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.   -DBOOST_PYTHON_NO_PY_SIGNATURES -DBOOST_PYTHON_STATIC_LIB -I./boost/1_35    -DHAVE_SDL=1 -DSDL_WINDOWING=1      -DHAVE_AL=1   -DHAVE_OGG   -I/usr/include/python2.4 -DHAVE_PYTHON=1    -I./src   -pipe  -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -pthread -MT boost/1_35/src/list.o -MD -MP -MF $depbase.Tpo -c -o boost/1_35/src/list.o boost/1_35/src/list.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
boost/1_35/src/list.cpp: In static member function ‘static boost::python::detail::new_non_null_reference_t* boost::python::detail::list_base::call(const boost::python::api::object&)’:
boost/1_35/src/list.cpp:17: warning: deprecated conversion from string constant to ‘char*’
boost/1_35/src/list.cpp: At global scope:
boost/1_35/src/list.cpp:150: fatal error: opening dependency file boost/1_35/src/.deps/list.Tpo: Permission denied
compilation terminated.
make[1]: *** [boost/1_35/src/list.o] Error 1
make[1]: Leaving directory `/home/d/vs/vegastrike'
make: *** [all] Error 2
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: Compiling in Ubuntu

Post by klauss »

Permission denied happens usually when you build (incompletely) with a user and then try to finish the build with another, or something like that.

You should always use the same account (your usual account) to do everything on the source tree.

The fix is simple: as the user that owns the files (or as root):

Code: Select all

~/src/vegastrike$ sudo chown <youruser>:<yourgroup> -R .
For instance, in my case it would be

Code: Select all

~/src/vegastrike$ sudo chown claudiofreire:users -R .

PS:
chuck_starchaser wrote: Klauss, my problem with Python was I didn't have the -dev versions.
Doh... it happens to me too, way too often ;)
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

Everything compiled.
Now I have a bit of another problem...
I really wanted to "sudo make install", but I cannot sudo from my usual user...
But if I switch to my privileged user, then it will take ownership again...
(IF it compiles at all...)
I guess I can make symbolic links to the binaries, for now...
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

I got NO sound at all (testing with PU; I'll test with Vegastrike next, if I figure where the
damned executable link is supposed to go... there's no /bin folder in the data repo...
Am I supposed to create a bin folder? Totally confused...
nphillips
Hunter
Hunter
Posts: 85
Joined: Sun Dec 13, 2009 9:28 pm

Re: Compiling in Ubuntu

Post by nphillips »

No sound is typical.

It's my #1 complaint about VS on Linux. That's why for VS and PU I never compiled for Linux, and just used wine to run whatever windows binary was available ;)

www2 should probably change the 0.6.0 update to focus on the damned sound issues in Linux.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

Yep; I just tested with Vegastrike's data, and... not EXACTLY the same thing...
First of all, let me clarify that running vssetup with PU data, I get three choices of Windows-EXT sound (high,
low, and something else), or NO sound.
Running vssetup in Vegastrike's data, I get linux sound choices. But the choices don't mention ALSA, for
example; they are all "Linux sound" and vary in the combos of music and sound effects.
So, I chose Linux sound with all sound.
When I run vegastrike, I got the sound of a swarm of robotic, killer bees, with an occasional 0.25 seconds
hint of music every 5 to 10 seconds.
Once it finished running the Campaign initialization and I was at a base, no sound anymore. In space, no
sound either.
mojek35
Star Pilot
Star Pilot
Posts: 5
Joined: Thu Dec 17, 2009 7:45 pm

Re: Compiling in Ubuntu

Post by mojek35 »

hello,
to chuck_starchaser:
How did you do the compiling? which version of python do I need? I believe I have now all posible vesions of python, that synaptic offerres (dev versions too), but still when compiling I get after a while following error.

Code: Select all

depbase=`echo boost/1_35/src/list.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.   -DBOOST_PYTHON_NO_PY_SIGNATURES -DBOOST_PYTHON_STATIC_LIB -I./boost/1_35    -DHAVE_SDL=1 -DSDL_WINDOWING=1      -DHAVE_AL=1   -DHAVE_OGG   -I/usr/include/python2.4 -DHAVE_PYTHON=1    -I./src   -pipe -O3 -g -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -pthread -MT boost/1_35/src/list.o -MD -MP -MF $depbase.Tpo -c -o boost/1_35/src/list.o boost/1_35/src/list.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
In file included from ./boost/1_35/boost/mpl/apply.hpp:23,
                 from ./boost/1_35/boost/python/object/pointer_holder.hpp:27,
                 from ./boost/1_35/boost/python/to_python_indirect.hpp:10,
                 from ./boost/1_35/boost/python/converter/arg_to_python.hpp:10,
                 from ./boost/1_35/boost/python/call.hpp:15,
                 from ./boost/1_35/boost/python/object_core.hpp:12,
                 from ./boost/1_35/boost/python/object.hpp:9,
                 from ./boost/1_35/boost/python/list.hpp:10,
                 from boost/1_35/src/list.cpp:5:
./boost/1_35/boost/mpl/apply_wrap.hpp:81:31: error: missing binary operator before token "("
./boost/1_35/boost/mpl/apply_wrap.hpp:173:31: error: missing binary operator before token "("
In file included from ./boost/1_35/boost/mpl/bind.hpp:27,
                 from ./boost/1_35/boost/mpl/lambda.hpp:18,
                 from ./boost/1_35/boost/mpl/apply.hpp:25,
                 from ./boost/1_35/boost/python/object/pointer_holder.hpp:27,
                 from ./boost/1_35/boost/python/to_python_indirect.hpp:10,
                 from ./boost/1_35/boost/python/converter/arg_to_python.hpp:10,
                 from ./boost/1_35/boost/python/call.hpp:15,
                 from ./boost/1_35/boost/python/object_core.hpp:12,
                 from ./boost/1_35/boost/python/object.hpp:9,
                 from ./boost/1_35/boost/python/list.hpp:10,
                 from boost/1_35/src/list.cpp:5:
./boost/1_35/boost/mpl/apply_wrap.hpp:81:31: error: missing binary operator before token "("
./boost/1_35/boost/mpl/apply_wrap.hpp:173:31: error: missing binary operator before token "("
In file included from ./boost/1_35/boost/mpl/lambda.hpp:18,
                 from ./boost/1_35/boost/mpl/apply.hpp:25,
                 from ./boost/1_35/boost/python/object/pointer_holder.hpp:27,
                 from ./boost/1_35/boost/python/to_python_indirect.hpp:10,
                 from ./boost/1_35/boost/python/converter/arg_to_python.hpp:10,
                 from ./boost/1_35/boost/python/call.hpp:15,
                 from ./boost/1_35/boost/python/object_core.hpp:12,
                 from ./boost/1_35/boost/python/object.hpp:9,
                 from ./boost/1_35/boost/python/list.hpp:10,
                 from boost/1_35/src/list.cpp:5:
./boost/1_35/boost/mpl/bind.hpp:364:31: error: missing binary operator before token "("
./boost/1_35/boost/mpl/bind.hpp:531:31: error: missing binary operator before token "("
In file included from ./boost/1_35/boost/mpl/lambda.hpp:22,
                 from ./boost/1_35/boost/mpl/apply.hpp:25,
                 from ./boost/1_35/boost/python/object/pointer_holder.hpp:27,
                 from ./boost/1_35/boost/python/to_python_indirect.hpp:10,
                 from ./boost/1_35/boost/python/converter/arg_to_python.hpp:10,
                 from ./boost/1_35/boost/python/call.hpp:15,
                 from ./boost/1_35/boost/python/object_core.hpp:12,
                 from ./boost/1_35/boost/python/object.hpp:9,
                 from ./boost/1_35/boost/python/list.hpp:10,
                 from boost/1_35/src/list.cpp:5:
./boost/1_35/boost/mpl/aux_/full_lambda.hpp:230:31: error: missing binary operator before token "("
In file included from ./boost/1_35/boost/python/object/pointer_holder.hpp:27,
                 from ./boost/1_35/boost/python/to_python_indirect.hpp:10,
                 from ./boost/1_35/boost/python/converter/arg_to_python.hpp:10,
                 from ./boost/1_35/boost/python/call.hpp:15,
                 from ./boost/1_35/boost/python/object_core.hpp:12,
                 from ./boost/1_35/boost/python/object.hpp:9,
                 from ./boost/1_35/boost/python/list.hpp:10,
                 from boost/1_35/src/list.cpp:5:
./boost/1_35/boost/mpl/apply.hpp:138:31: error: missing binary operator before token "("
boost/1_35/src/list.cpp: In static member function ‘static boost::python::detail::new_non_null_reference_t* boost::python::detail::list_base::call(const boost::python::api::object&)’:
boost/1_35/src/list.cpp:17: warning: deprecated conversion from string constant to ‘char*’
make: *** [boost/1_35/src/list.o] Error 1
thanks in advance,
Mojmir.
nphillips
Hunter
Hunter
Posts: 85
Joined: Sun Dec 13, 2009 9:28 pm

Re: Compiling in Ubuntu

Post by nphillips »

FYI, I compiled from scratch the other night in Karmic, with zero difficulty.

Just follow the steps here: http://vegastrike.sourceforge.net/media ... u_Linux%29

That being said... mojek, what you're seeing is an issue with boost, not python.

What flags did you set in your configure command?

per the wiki, mine ended up being

Code: Select all

./configure --enable-flags='-O3 -g' --with-data-dir=/home/USER/VegaStrike --with-boost=1.35
If all of that wasn't in there, you may need to do a 'make clean', then re-run the configure script with those flags (make sure the --with-data-dir is actually pointing to the data directory!)

Also, for the record, sound worked flawlessly the first time. I've never had that happen before!
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

Those are boost errors; NOT python errors.
Did you enter that long line from the wiki that downloads and installs all dependencies in one shot?
That's when you get boost updated.
If that's not the problem, then I don't know... Hey! I AM the newbie, dammit!!! :)
nphillips
Hunter
Hunter
Posts: 85
Joined: Sun Dec 13, 2009 9:28 pm

Re: Compiling in Ubuntu

Post by nphillips »

chuck_starchaser wrote:Did you enter that long line from the wiki that downloads and installs all dependencies in one shot?
That's when you get boost updated.
Actually, boost doesn't get updated from there. I believe it's packaged with VS; just the headers, so there's no system install/compile needed.
If that's not the problem, then I don't know... Hey! I AM the newbie, dammit!!! :)
I think it's a problem b/c there's nothing telling the configure script to work with boost 1.35.
mojek35
Star Pilot
Star Pilot
Posts: 5
Joined: Thu Dec 17, 2009 7:45 pm

Re: Compiling in Ubuntu

Post by mojek35 »

Hi,
thanks for quick repply. I am not sure I folowed the instruction as they were.

So I see .... I didn't know, the boost is a library. (from the instructions i imagined it like an important feature of python for cmplling of vegastike :) - sorry I don't know python at all.

If I remember, I entered following (yesterday)

Code: Select all

svn co https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/vegastrike
svn update vegastrike/boost/1_35
and then again doing some experiments...

Code: Select all

svn co https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/vegastrike
And Yes I did the longer apt-get install. I started with checking and installing of packages form Requirments chapter. (Currently I have according to synaptic installed python 2.4, 2.6 and 3.)

my configure statement was

Code: Select all

 ./configure --enable-flags='-O3 -g' --with-boost=1.35
Which version of library should I install? Synaptics seems to fofer only 1.38 and 1.40...

./configure --enable-flags='-O3 -g' --with-boost=1.35

-mojek
mojek35
Star Pilot
Star Pilot
Posts: 5
Joined: Thu Dec 17, 2009 7:45 pm

Re: Compiling in Ubuntu

Post by mojek35 »

to chuck:

Sorry for my english, it is rather not good. Did you mean sludn't run following?

Code: Select all

svn update vegastrike/boost/1_35
TIA
-mojmir
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

No; right at the beginning of that wiki page, it says to enter,

Code: Select all

sudo apt-get install libpng12-0 libpng12-dev python2.5-dev libexpat1-dev     \
        libjpeg62-dev glutg3-dev libopenal-dev libgtk2.0-dev libogg-dev libvorbis-dev \
        build-essential libgl1-mesa-dev automake autoconf
to get all the dependencies.

But maybe you're right... wait... I think that when I updated vegastrike from svn, boost1.35 updated itself automatically.
But what you're showing couldn't hurt, IMO.
I had no problems with boost compiling.
In any case, you need those dependencies, if you haven't got them.
mojek35
Star Pilot
Star Pilot
Posts: 5
Joined: Thu Dec 17, 2009 7:45 pm

Re: Compiling in Ubuntu

Post by mojek35 »

Hello,
I have reinstalled whole my Ubuntu 9.10 (+ some updates) and tried to compile Vegastrike with that.

Code: Select all

./make all-am 
produces the same error, I already mentioned.
Then I by chance finally tried to do

Code: Select all

./make all 
and it worked!

But currently I have problem with running Vgastrike. It is going to regulary freeze during loading campaign when loading Logos/dgn Pri.texture. (I had set up optional hqtextures, my last configuration was 512MB+1GBSwap,all sound, 1028x768, medium detail, average shader,16color full screen)

TIA,
-mojmir
stingray18
Explorer
Explorer
Posts: 9
Joined: Sun Dec 13, 2009 7:25 pm
Location: Northern Germany

Re: Compiling in Ubuntu

Post by stingray18 »

mojek35 wrote:Hello,
I have reinstalled whole my Ubuntu 9.10 (+ some updates) and tried to compile Vegastrike with that.

Code: Select all

./make all-am 
produces the same error, I already mentioned.
Then I by chance finally tried to do

Code: Select all

./make all 
and it worked!
Yes, the make [all] target applies a patch to the boost sources.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

mojek35 wrote:But currently I have problem with running Vgastrike. It is going to regulary freeze during loading campaign when loading Logos/dgn Pri.texture. (I had set up optional hqtextures, my last configuration was 512MB+1GBSwap,all sound, 1028x768, medium detail, average shader,16color full screen)
You shouldn't get HQ textures, IMO. I've never tried them, but with compression textures take about 1/6 as much space in video memory as without. The difference is huge; so unless you have an uber videocard with like 2 gigs of DDS3 ram, I'd go for the regular textures. Why 512 meg? Do you really have so little memory?
Also, what kind of videocard (and/or GPU) do you have? If it's ps3.0 you should use the high shader. Big difference in quality.
charlieg
Elite Mercenary
Elite Mercenary
Posts: 1329
Joined: Thu Mar 27, 2003 11:51 pm
Location: Manchester, UK
Contact:

Re: Compiling in Ubuntu

Post by charlieg »

chuck_starchaser wrote:Everything compiled.
Now I have a bit of another problem...
I really wanted to "sudo make install", but I cannot sudo from my usual user...
But if I switch to my privileged user, then it will take ownership again...
(IF it compiles at all...)
I guess I can make symbolic links to the binaries, for now...
Just an FYI.

1) 'make install' won't recompile. It will only install the binaries/data in the necessary places e.g. /usr/local.

2) the permissions would have been fine anyway. Sudo => super user i.e. root, won't have access issues like when mixing file operations between 2 normal users.
Free Gamer - free software games compendium and commentary!
FreeGameDev forum - open source game development community
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

charlieg wrote:1) 'make install' won't recompile. It will only install the binaries/data in the necessary places e.g. /usr/local.
Ahhh, good to know; thanks!
2) the permissions would have been fine anyway. Sudo => super user i.e. root, won't have access issues like when mixing file operations between 2 normal users.
My problem is a little more complicated, I believe.
I have a friend who's a linux expert, and he came over to install Ubuntu for me, the first time; and
the second time (to update to Karmic Koala); but this second time, he said that having a user use
the same password as root is a security risk, so he set up another user for me. So, I have really
three users: root, foo and bar, let's call them.
The user that Ubuntu sets up automatically is foo. My friend added bar. So, I normally log in as bar.
But as bar I'm extremely un-privileged. I cannot even sudo. I have to switch users to foo to be able
to sudo. So, in fact, I end up mixing file operations between 2 normal users. Well, I guess I shouldn't
need to, but I get offly confused sometimes, and forget who I am :)
nphillips
Hunter
Hunter
Posts: 85
Joined: Sun Dec 13, 2009 9:28 pm

Re: Compiling in Ubuntu

Post by nphillips »

D'oh...now i understand how he configured your system! By default, Ubuntu sets up the root password the same as your initial user's. All you needed to do was change the root password:

Code: Select all

>su
[root pass]
>passwd
[new pass]
>exit
and you're done. Foo's password stays the same, and root's is changed.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Re: Compiling in Ubuntu

Post by chuck_starchaser »

Damn!
I guess my friend wasn't such a Linux expert, after all.
Well, I guess when Libidinous Llama comes out I'll ask him for a simpler setup.
charlieg
Elite Mercenary
Elite Mercenary
Posts: 1329
Joined: Thu Mar 27, 2003 11:51 pm
Location: Manchester, UK
Contact:

Re: Compiling in Ubuntu

Post by charlieg »

Also:

Code: Select all

sudo -s -H
That switches to perma-sudo i.e. is equivalent to 'su -'.

Also, using sudo escalates you to root privileges. So the foo->bar bar->foo user switching doesn't matter much. Compile as 'bar' then 'su foo' then 'sudo make install' would do it (punctuated with appropriate 'cd' commands).
Free Gamer - free software games compendium and commentary!
FreeGameDev forum - open source game development community
Post Reply