compiling problems with Fedoa 11 (revision 12556)

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).
plueschinger
Confed Special Operative
Confed Special Operative
Posts: 348
Joined: Fri Apr 14, 2006 1:41 am

compiling problems with Fedoa 11 (revision 12556)

Post by plueschinger »

Hello

I downloaded revision 12556 with the following commands:
svn co https://vegastrike.svn.sourceforge.net/ ... vegastrike
and
svn co https://vegastrike.svn.sourceforge.net/ ... trunk/data

then I was running ./bootstrap-sh.
./configure stopped in the beginning because of missing header-files (devel-packages).
But now it looks good to me more or less, there is missing libsocket,
which is quite old in my opinion. Anyway ./configure runs to the end.
gcc and gcc-c++ are also installed.

make stops really early with the following error message:
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.6 -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
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[1]: *** [boost/1_35/src/list.o] Error 1
make[1]: Leaving directory `/opt7old/Vegastrike/vegastrike'
make: *** [all] Error 2


and above this message, perhaps25 lines I found this strange message:
In file included from src/networking/lowlevel/vsnet_socketset.cpp:9:
src/networking/lowlevel/vsnet_dloadmgr.h:24: warning: declaration 'class VSFileSystem::VSFile' does not declare anything
What I saw also is, that the "mktime" function? is not working in the configure script.
Do you have any ideas?

It is also possible, that I have still some old libraries from fc10,
because my harddisk was really full, when I upgraded to fc11.
So I had to upgrade part after part, some effects where, that my rpm, how shall I call it database,
vanished in the air, I had to do a rpm --initdb, and that with problems, then I installed all the packages
a second time, rpm-4.7 is not compatible to rpm-4.5.

By the way the config.log
config.log
Regards
Plueschinger
You do not have the required permissions to view the files attached to this post.
plueschinger
Confed Special Operative
Confed Special Operative
Posts: 348
Joined: Fri Apr 14, 2006 1:41 am

Re: compiling problems with Fedoa 11 (revision 12556)

Post by plueschinger »

Hello

Installing boost-devel made no changes.

Line boost/1_35/src/list.cpp:5 tells the following:
#include <boost/python/list.hpp>
Regards Plueschinger
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by loki1950 »

Hi plueschinger not sure but as i have stated in an other thread it maybe because of the changes with Python 2.6.2 from 2.5 i am still trying to build python 2.6.2 with Visual Studio Express 2008 myself :wink:

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
plueschinger
Confed Special Operative
Confed Special Operative
Posts: 348
Joined: Fri Apr 14, 2006 1:41 am

Re: compiling problems with Fedoa 11 (revision 12556)

Post by plueschinger »

Hello

@ loki1950
About python I thought directly, when I read the gentoo revision thread,
because of this I chose a similar name, but the error messages are different.

so what makes the mistake, which brakes up compiling in my case is different:
The final error starts here:
detail::new_non_null_reference list_base::call(object const& arg_)
{
return (detail::new_non_null_reference)
(expect_non_null)(
PyObject_CallFunction(
(PyObject*)&PyList_Type, "(O)",
arg_.ptr()));
}
Looks to me like a c++ object, class or something like this because of the 2 ::
doublepoints. line 15 or was it 17 is"arg_.ptr()));" but this is in a function.
I forgot to tell, the file is called "boost/1_35/src/list.cpp"

Regards
Plueschinger
plueschinger
Confed Special Operative
Confed Special Operative
Posts: 348
Joined: Fri Apr 14, 2006 1:41 am

Re: compiling problems with Fedoa 11 (revision 12556)

Post by plueschinger »

Hello

All my ideas were more or less wrong.
The problem is:
#elif BOOST_PP_ITERATION_DEPTH() == 1
I changed it to:
#elif BOOST_PP_ITERATION_DEPTH == 1
At least it continues compiling.

Regards
Plueschinger

Just passed the basecomputer.cpp problem,
For my luck Alwendil showed the solution, change line 3148 to
#if (__GLIBC__>2 || __GLIBC_MINOR__>=10) || (defined(_WIN32) && !defined(CYGWIN))
Compilation finished :wink:
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by loki1950 »

Glad you got it sorted out it may have been because of the change in gcc from 4.3 to 4.4 then as was mentioned in STEVE55's thread.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
plueschinger
Confed Special Operative
Confed Special Operative
Posts: 348
Joined: Fri Apr 14, 2006 1:41 am

Re: compiling problems with Fedoa 11 (revision 12556)

Post by plueschinger »

Hello

@loki1950
I'm really happy, that this is behind me. :D

To all the others.
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 "("
The problem is neither "./boost/1_35/boost/mpl/apply.hpp:23,",
nor " boost/1_35/src/list.cpp:5:" or one of the files in the middle.

The problem is "./boost/1_35/boost/mpl/apply_wrap.hpp:81" and "./boost/1_35/boost/mpl/apply_wrap.hpp:173"

Just change there
#elif BOOST_PP_ITERATION_DEPTH() == 1
to
#elif BOOST_PP_ITERATION_DEPTH == 1
and you have to do it in the following files too, like "/boost/1_35/boost/mpl/bind.hpp:364" and so on, around 10 times,
then the program continues compiling for a while, then the same error again one time.
then it compiles for a long time, finally you have the basecomputer.cpp problem described above and in the revision12556
gentoo thread..

I only hope, I didn't made a big mistake,
as far as I understand c and c++, I declared "BOOST_PP_ITERATION_DEPTH == 1" as a constant with the value "1",
and "BOOST_PP_ITERATION_DEPTH()" looks to me like a function, but my knowledge is little.

Regards
Plueschinger
JsnMtth
Bounty Hunter
Bounty Hunter
Posts: 174
Joined: Wed May 27, 2009 6:38 am
Location: Fresno, California - United States of America
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by JsnMtth »

plueschinger,
Thanks for the info on getting svn vegastrike to compile on Fedora 11 :D
Here is the svn diff on my modified boost checkout. So it can be applied to a fresh checkout.
You do not have the required permissions to view the files attached to this post.
energyman76b
ISO Party Member
ISO Party Member
Posts: 445
Joined: Tue Feb 11, 2003 8:04 am

Re: compiling problems with Fedoa 11 (revision 12556)

Post by energyman76b »

maybe you should rename your patch 'gcc-4.4.patch' ;)
JsnMtth
Bounty Hunter
Bounty Hunter
Posts: 174
Joined: Wed May 27, 2009 6:38 am
Location: Fresno, California - United States of America
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by JsnMtth »

yeah your probably right. :oops:
plueschinger
Confed Special Operative
Confed Special Operative
Posts: 348
Joined: Fri Apr 14, 2006 1:41 am

Re: compiling problems with Fedoa 11 (revision 12556)

Post by plueschinger »

Hello
@JsnMtth
I have some problems to start vegastrike, I only can start it, in the directory where I compiled it.
If i try to start it from the bash, console, terminal from a neutral place,
vegastrike starts to complain about some missing files:
Vertex Program Error: Failed to open file programs/lite.vp
Fragment Program Error: Failed to open file programs/lite.fp
Vertex Program Error: Failed to open file programs/default.vp
Fragment Program Error: Failed to open file programs/default.fp
0 joysticks were found.

The names of the joysticks are:
Warning, galaxy contains no overarching planet info
FactionXML:LoadXML factions.xml
Failed to open 'factions.xml' this probably means it can't find the data directory
vegastrike: src/cmd/faction_xml.cpp:330: static void Faction::LoadXML(const char*, char*, int): Assertion `0' failed.
Aborted
Do you have the same problem?

Regards
Plueschinger
wirser
Bounty Hunter
Bounty Hunter
Posts: 201
Joined: Wed Dec 01, 2004 8:06 pm
Location: not where i want to be

Re: compiling problems with Fedoa 11 (revision 12556)

Post by wirser »

Hi
I just pulled svn 12556 boost 54324 on F11 86_64
I applied the patch from the boost dir with "patch -i fedora-11.patch"
which complained that it wanted to know what file to patch and should I have used -p0 instead
anyways bind.hpp rejected it's patches due to a couple of add lines which confused it :?
not a big problem
now I stop compiling with the following
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.6 -DHAVE_PYTHON=1 -I./src -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -pthread -MT src/cmd/basecomputer.o -MD -MP -MF $depbase.Tpo -c -o src/cmd/basecomputer.o src/cmd/basecomputer.cpp &&\
mv -f $depbase.Tpo $depbase.Po
src/cmd/basecomputer.cpp: In member function ‘void BaseComputer::loadLoadSaveControls()’:
src/cmd/basecomputer.cpp:3166: error: invalid conversion from ‘int (*)(const void*, const void*)’ to ‘int (*)(const dirent**, const dirent**)’
src/cmd/basecomputer.cpp:3166: error: initializing argument 4 of ‘int scandir(const char*, dirent***, int (*)(const dirent*), int (*)(const dirent**, const dirent**))’
make[1]: *** [src/cmd/basecomputer.o] Error 1
make[1]: Leaving directory `/home/none/build/vegastrike/vegastrike'
edit ( be patient I'm posting/editing as I find problems)
I've found http://vegastrike.sourceforge.net/forum ... =5&t=14856
and am trying to compile whith the following changes
Ah, thx, must have missed that thread. Helped a lot with my problem. I could compile src/cmd/basecomputer.cpp by changing the define in line 3148 to "#if (__GLIBC__>2 || __GLIBC_MINOR__>=10) || (defined(_WIN32) && !defined(CYGWIN))". The "versionsort" #if
well I compiled and ran for a bit (oswald has a st st st studder)
that and the music has some "static" could be that I have other apps running

also for some reason configure did not find ffmpeg although I have it and ffmpeg-devel pkgs but more on this later
________________________________________________
BTW when I first tried d/ling svn just for kicks I tried
svn co --ignore-externals ....
./configure --with-boost=system (1.37)
make

I got as far as src/python/unit_exports.h which complained about get_pytype not defined
if anybody is interested in pursuing let me know and I'll pull another clean dir svn of the src to play with
if current_situation=fact and if current_situation=faith
then current_forcast = excitement
JsnMtth
Bounty Hunter
Bounty Hunter
Posts: 174
Joined: Wed May 27, 2009 6:38 am
Location: Fresno, California - United States of America
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by JsnMtth »

wirser wrote:Hi
I just pulled svn 12556 boost 54324 on F11 86_64
I applied the patch from the boost dir with "patch -i fedora-11.patch"
which complained that it wanted to know what file to patch and should I have used -p0 instead
anyways bind.hpp rejected it's patches due to a couple of add lines which confused it :?
not a big problem
yes you should use -0 with the patch I uploaded.
wirser wrote: now I stop compiling with the following
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.6 -DHAVE_PYTHON=1 -I./src -pipe -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -pthread -MT src/cmd/basecomputer.o -MD -MP -MF $depbase.Tpo -c -o src/cmd/basecomputer.o src/cmd/basecomputer.cpp &&\
mv -f $depbase.Tpo $depbase.Po
src/cmd/basecomputer.cpp: In member function ‘void BaseComputer::loadLoadSaveControls()’:
src/cmd/basecomputer.cpp:3166: error: invalid conversion from ‘int (*)(const void*, const void*)’ to ‘int (*)(const dirent**, const dirent**)’
src/cmd/basecomputer.cpp:3166: error: initializing argument 4 of ‘int scandir(const char*, dirent***, int (*)(const dirent*), int (*)(const dirent**, const dirent**))’
make[1]: *** [src/cmd/basecomputer.o] Error 1
make[1]: Leaving directory `/home/none/build/vegastrike/vegastrike'
edit ( be patient I'm posting/editing as I find problems)
I've found http://vegastrike.sourceforge.net/forum ... =5&t=14856
and am trying to compile whith the following changes
Ah, thx, must have missed that thread. Helped a lot with my problem. I could compile src/cmd/basecomputer.cpp by changing the define in line 3148 to "#if (__GLIBC__>2 || __GLIBC_MINOR__>=10) || (defined(_WIN32) && !defined(CYGWIN))". The "versionsort" #if
well I compiled and ran for a bit (oswald has a st st st studder)
that and the music has some "static" could be that I have other apps running
I don't think I ran into that problem. I did encounter some differences between my system and a clean install because I upgraded from Fedora 9 x86_64 to Fedora 11 x86_64. As far a oswald he studdered on Ubuntu, Debian, and Fedora for me. There is a new sound system in the works and everything is talking like it is going to be a HUGE improvement.
wirser wrote: also for some reason configure did not find ffmpeg although I have it and ffmpeg-devel pkgs but more on this later
I haven't noticed a difference building with and without ffmpeg. I think there are libraries for features that haven't had content created, but being a noob I'm not sure.
wirser wrote: ________________________________________________
BTW when I first tried d/ling svn just for kicks I tried
svn co --ignore-externals ....
./configure --with-boost=system (1.37)
make

I got as far as src/python/unit_exports.h which complained about get_pytype not defined
if anybody is interested in pursuing let me know and I'll pull another clean dir svn of the src to play with
I didn't have any luck with boost 1.37 either
JsnMtth
Bounty Hunter
Bounty Hunter
Posts: 174
Joined: Wed May 27, 2009 6:38 am
Location: Fresno, California - United States of America
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by JsnMtth »

plueschinger wrote:Hello
@JsnMtth
I have some problems to start vegastrike, I only can start it, in the directory where I compiled it.
If i try to start it from the bash, console, terminal from a neutral place,
vegastrike starts to complain about some missing files:
Yes I do. But I haven't considered it a problem. That is how it works if you follow the build instructions for a developer. They suggest you symlink the executable into the data directory your using and execute from there. This allows you to build multiple binaries and test with different data-sets simultaneously (they didn't say why but that is why I "think" they did it).

Code: Select all

./configure --with-data-dir=<absolute_path_to_data>  
Compile with the above configuration and you should be able to launch vs from an arbitrary location (or icon).
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by loki1950 »

JsnMtth wrote:I haven't noticed a difference building with and without ffmpeg. I think there are libraries for features that haven't had content created, but being a noob I'm not sure.
There is indeed no content that uses it ATM but i think that klauss's new sound system will be using ffmpeg's streaming capabilities to avoid loading the whole music/sound file into memory as is currently done but i have had no problem on my fedora 10 32-bits install ./configure finds it with quite easily so it looks like one of the find scripts needs updating again :roll:

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
mduf
Trader
Trader
Posts: 21
Joined: Tue May 29, 2007 6:51 pm
Location: Quebec, Canada

Re: compiling problems with Fedoa 11 (revision 12556)

Post by mduf »

BTW when I first tried d/ling svn just for kicks I tried
svn co --ignore-externals ....
./configure --with-boost=system (1.37)
make

I got as far as src/python/unit_exports.h which complained about get_pytype not defined
if anybody is interested in pursuing let me know and I'll pull another clean dir svn of the src to play with
I successfully built it using the boost 1.37 that come with fedora

first do the following changes at line 712 and 723 of your Makefile.am, if you don't do so it will fail at linking

Code: Select all

--- vegastrike/Makefile.am	2009-07-20 12:46:40.556806509 -0400
+++ vegastrike2/Makefile.am	2009-07-23 15:02:29.485410132 -0400
@@ -709,7 +709,7 @@
 	-lz
 if BOOSTSYSTEM
   vegastrike_LDADD = $(vegastrike_LDADD_1) \
-    -lboost_python-st
+    -lboost_python-mt
 else
   vegastrike_LDADD = $(vegastrike_LDADD_1)
 endif  
@@ -720,7 +720,7 @@
 	-lz
 if BOOSTSYSTEM
   vegaserver_LDADD = $(vegaserver_LDADD_1) \
-    -lboost_python-st
+    -lboost_python-mt
 else
   vegaserver_LDADD = $(vegaserver_LDADD_1)
 endif  
In fedora 11 the boost library files are call libboost_python-mt.* I don't know if there's a difference between st/mt but it work


two avoid the get_pytype error it must be build with the following flag -DBOOST_PYTHON_NO_PY_SIGNATURES
If you want to do a static link you also need -DBOOST_PYTHON_STATIC_LIB in this case you also need to install the boost-static package.
(BTW vegastrike use those flags when building with 1.35)

So your configure command look like this

Code: Select all

./configure [your favourite options] --with-boost=system CXXFLAGS=-DBOOST_PYTHON_NO_PY_SIGNATURES\ -DBOOST_PYTHON_STATIC_LIB
It is probably not a clean way to pass those flags to every thing but it works. I'll try to find a better way, or if your better than me, feel free to post correction.

I have tested only the basic functionality but my binary work well so far.

BTW if someone is using like me the nvidia proprietary driver and you got an error about PFNGLCOMPRESSEDTEXIMAGE2DPROC install the package xorg-x11-drv-nvidia-devel and add the following option when you configure
--with-gl-libs=/usr/lib64/nvidia --with-gl-inc=/usr/include/nvidia
Ingmar
Atmospheric Pilot
Atmospheric Pilot
Posts: 1
Joined: Thu Aug 06, 2009 10:42 am

Re: compiling problems with Fedoa 11 (revision 12556)

Post by Ingmar »

wirser wrote: BTW when I first tried d/ling svn just for kicks I tried
svn co --ignore-externals ....
./configure --with-boost=system (1.37)
make

I got as far as src/python/unit_exports.h which complained about get_pytype not defined
if anybody is interested in pursuing let me know and I'll pull another clean dir svn of the src to play with
Actually, I am interested.

I've filed a boost ticket.
JsnMtth
Bounty Hunter
Bounty Hunter
Posts: 174
Joined: Wed May 27, 2009 6:38 am
Location: Fresno, California - United States of America
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by JsnMtth »

Build fails with:

Code: Select all

depbase=`echo src/cmd/basecomputer.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.6 -DHAVE_PYTHON=1    -I./src   -pipe  -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -pthread -MT src/cmd/basecomputer.o -MD -MP -MF $depbase.Tpo -c -o src/cmd/basecomputer.o src/cmd/basecomputer.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
src/cmd/basecomputer.cpp: In member function ‘void BaseComputer::loadLoadSaveControls()’:
src/cmd/basecomputer.cpp:3166: error: invalid conversion from ‘int (*)(const void*, const void*)’ to ‘int (*)(const dirent**, const dirent**)’
src/cmd/basecomputer.cpp:3166: error:   initializing argument 4 of ‘int scandir(const char*, dirent***, int (*)(const dirent*), int (*)(const dirent**, const dirent**))’
make[1]: *** [src/cmd/basecomputer.o] Error 1
make[1]: Leaving directory `/home/jason/vegastrike/vegastrike.git/vegastrike'
make: *** [all] Error 2

Seems to be related to this:
http://bugs.gentoo.org/show_bug.cgi?id=270511
You do not have the required permissions to view the files attached to this post.
RedAdder
Bounty Hunter
Bounty Hunter
Posts: 149
Joined: Sat Jan 03, 2009 8:11 pm
Location: Germany, Munich
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by RedAdder »

Great that you are making progress.

I read the link that you provided, and while I really have no clue what I'm talking about, there is a reply in there which suggests the fix is simply to use a different cast for the scandir function:

http://cvs.fedoraproject.org/viewvc/dev ... vision=1.1

For completeness, the other link provided there is this:
http://cvs.fedoraproject.org/viewvc/dev ... vision=1.1
JsnMtth
Bounty Hunter
Bounty Hunter
Posts: 174
Joined: Wed May 27, 2009 6:38 am
Location: Fresno, California - United States of America
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by JsnMtth »

Yeah I saw that patch too. However, I don't understand what it does or how to apply it. :oops:
My C and C++ is weak. I've got a book I've been sitting on, if I read it I should be able to figure it out. I was hoping a C guru here would glance at it for two second and go ohh. This is what happened.

The crazy thing is I've built it on my system before, an update in Fedora 11 changed something that caused it. I'm not attempting the boost upgrade.
RedAdder
Bounty Hunter
Bounty Hunter
Posts: 149
Joined: Sat Jan 03, 2009 8:11 pm
Location: Germany, Munich
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by RedAdder »

Well, I'm not a C guru, so I don't quite get why the cast doesn't work anymore.
Maybe you can't cast void pointer to a pointer to a pointer anymore?

However placing the function into the #ifdef .. #else..#endif should work around the problem.
Warning: the code is untested, because I'm too lazy and I don't have your setup anyway.

Code: Select all

#if defined(_WIN32) && !defined(__CYGWIN__)
static int datesort ( const struct dirent **pd1, const struct dirent **pd2 ) {
	const struct dirent *d1=*pd1;
	const struct dirent *d2=*pd2;
	struct stat s1, s2;
	std::string tmp=VSFileSystem::homedir+"/save/"+d1->d_name;
	if (stat(tmp.c_str(), &s1))
		return 0;
	tmp=VSFileSystem::homedir+"/save/"+d2->d_name;
	if (stat(tmp.c_str(), &s2))
		return 0;

	return s1.st_mtime - s2.st_mtime;
}

typedef int (*scancompare) ( const struct dirent **v1, const struct dirent **v2 );
#else
static int datesort ( const void *v1, const void *v2 ) {
	const struct dirent *d1=*(const struct dirent**)v1;
	const struct dirent *d2=*(const struct dirent**)v2;
	struct stat s1, s2;
	std::string tmp=VSFileSystem::homedir+"/save/"+d1->d_name;
	if (stat(tmp.c_str(), &s1))
		return 0;
	tmp=VSFileSystem::homedir+"/save/"+d2->d_name;
	if (stat(tmp.c_str(), &s2))
		return 0;

	return s1.st_mtime - s2.st_mtime;
}

typedef int (*scancompare) ( const void *v1, const void *v2 );
#endif
You could also improve it a bit to this version with less redundancy:

Code: Select all

#if defined(_WIN32) && !defined(__CYGWIN__)
static int datesort ( const struct dirent **pd1, const struct dirent **pd2 ) {
	const struct dirent *d1=*pd1;
	const struct dirent *d2=*pd2;
#else
static int datesort ( const void *v1, const void *v2 ) {
	const struct dirent *d1=*(const struct dirent**)v1;
	const struct dirent *d2=*(const struct dirent**)v2;
#endif
	struct stat s1, s2;
	std::string tmp=VSFileSystem::homedir+"/save/"+d1->d_name;
	if (stat(tmp.c_str(), &s1))
		return 0;
	tmp=VSFileSystem::homedir+"/save/"+d2->d_name;
	if (stat(tmp.c_str(), &s2))
		return 0;

	return s1.st_mtime - s2.st_mtime;
}

#if defined(_WIN32) && !defined(__CYGWIN__)
typedef int (*scancompare) ( const struct dirent **v1, const struct dirent **v2 );
#else
typedef int (*scancompare) ( const void *v1, const void *v2 );
#endif
Genghis Prawn
Hunter
Hunter
Posts: 75
Joined: Mon Oct 13, 2008 5:03 am
Location: Massachusetts, USA
Contact:

compiling problems with Fedora 11 (revision 12562)

Post by Genghis Prawn »

using revision 12562:

I corrected the lines shown in the patch for revision 12556. I now get this message

In file included from src/gui/glut_support.cpp:27:
./src/gldrv/gl_globals.h:235: error: ‘PFNGLCOMPRESSEDTEXIMAGE2DPROC’ does not name a type
make[1]: *** [src/gui/glut_support.o] Error 1
make[1]: Leaving directory `/home/norman/Vegastrike/vegastrike'
make: *** [all] Error 2
You do not have the required permissions to view the files attached to this post.
JsnMtth
Bounty Hunter
Bounty Hunter
Posts: 174
Joined: Wed May 27, 2009 6:38 am
Location: Fresno, California - United States of America
Contact:

Re: compiling problems with Fedoa 11 (revision 12556)

Post by JsnMtth »

Thanks RedAdder,
I really appreciate your input. My concern is that the build worked previously without any changes. The preprocessor flags you suggest would only preserve the Windows systems. I'm using a bleeding edge distro, and changing the cast as you suggest could break other "stable" distro's (I may do it to get a working build here though). I'm unable to determine what (package) changed and why. I would like any changes I implement to be submittable to the project. I'm testing a patch for a windows build on my "previously good" Linux build and encountered this error. After determining that my patch didn't cause I've attempted builds with several clean revisions from SVN. I've received the same error, including on revisions I KNOW previously worked. I've also repeated this on other Fedora 11 builds. I may test it on an un-updated fedora system next. If it works I can diff the packages in the updates.

Im reading a C++ programming book right now. I finally know what cast means. When I complete it I hope to be able to fix it if nobody else is familiar with or interested in the issue.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: compiling problems with Fedoa 11 (revision 12556)

Post by klauss »

About ffmpeg, the new sound system will use it as a "monster codec" that can handle tons of formats.

But any codec is optional, so you can certainly build without ffmpeg support in either branch (with and without the new sound system).

The ogg codec can and will handle streaming just as well.

ffmpeg is rather required for any kind of video format though, for which we have no other codec. Priv Gold will be the first to use it, but I expect others to come in line once the feature hits full support (without the new sound system, only video works - no sound - so it's less attractive).

In fact I expect to begin integration of the new sound system with VS in the near future, and eventually merging it into trunk, so you should make sure you can build with ffmpeg or you'll be missing a rather important feature.
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 problems with Fedoa 11 (revision 12556)

Post by chuck_starchaser »

Code: Select all

invalid conversion from ‘int (*)(const void*, const void*)’ to ‘int (*)(const dirent**, const dirent**)’
Something really ugly is being done somewhere. Just my 0.1 c. Looks evil.
Conversion of const void ** to const void *, or viceversa, should be illegal, and
require a reinterpret_cast<> to even compile.
And that's not even void to void, but void to dirent.
There should also be comments explaining the reasons for the #ifdef's, rather
than assume that anyone reading the code should know.
Post Reply