Failed to install 8kingdoms

Hello, I was trying to install Tremulous game to use it when I have some free time in FreeBSD 9.0
It seems that it needs to install 8kingdoms but it gives an error:

Code:
# portinstall 8kingdoms
[Gathering depends for games/8kingdoms .............................................. done]
** Port marked as IGNORE: games/8kingdoms:
        is marked as broken: Does not compile with GCC 4.2
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        - games/8kingdoms
[root@Msc115 /usr/ports/games]# cd 8kingdoms/
Makefile   distinfo   files/     pkg-descr  
[root@Msc115 /usr/ports/games]# portmaster /usr/ports/games/8kingdoms

===>>> Port directory: /usr/ports/games/8kingdoms

        ===>>> This port is marked BROKEN
        ===>>> Does not compile with GCC 4.2


        ===>>> If you are sure you can build it, remove the
               BROKEN line in the Makefile and try again.
Terminated

I google it but I could not find a solution. I hope someone can help me here, thanks in advance.
 
Code:
cd /usr/ports/games/8kingdoms
ee Makefile
Remove the BROKEN line and save Makefile
Code:
make install clean
PS: GCC 4.2 is the default compiler of the system. If can't be built with GCC 4.2 install GCC4.7 and try to compile it with this.
DO NOT try to change system's default compiler. just use
Code:
CC=/usr/local/bin/gcc47
 
If you do get it to compile with another version of GCC, submit a PR for the port (or e-mail the maintainer), and ask them to add an OPTION to use GCC from the ports tree.
 
Thank you both for the replies.
When I removed the line BROKEN, it started to download finally.
Now I have this error:
Code:
world/world_server.cpp: In member function 'void World::TWorldServer::synchro(PLAYER_ID, ACTION_ID, World::TAction&)':
world/world_server.cpp:142: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp:160: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp:166: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp:172: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp:178: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp: In function 'void* World::WORLD_SERVER_MSG_HANDLER(MESSAGE_ID, SENDER, void*)':
world/world_server.cpp:2035: error: cast from 'void*' to 'int' loses precision
world/world_server.cpp:2046: error: cast from 'void*' to 'int' loses precision
world/world_server.cpp:2102: error: cast from 'void*' to 'int' loses precision
world/world_server.cpp:2113: error: cast from 'void*' to 'int' loses precision
gmake[1]: *** [world_server.o] Error 1
gmake[1]: Leaving directory `/usr/ports/games/8kingdoms/work/8Kingdoms-1.1.0'
gmake: *** [all] Error 2
*** Error code 1

Stop in /usr/ports/games/8kingdoms.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portinstall20120411-67142-1rxghwv-0 env make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! games/8kingdoms       (unknown build error)
 
Try:
Code:
cd /usr/ports/lang/gcc47
make install clean
cd /usr/ports/games/8kingdoms
make clean
make CC=/usr/local/bin/gcc47 install clean
 
Done, but it still fails

Code:
local/include/SDL -I/usr/local/include -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_OPENGL -I/usr/include/tcl8.4 -MT world_server.o -MD -MP -MF .deps/world_server.Tpo -c -o world_server.o `test -f 'world/world_server.cpp' || echo './'`world/world_server.cpp
world/world_server.cpp: In member function 'void World::TWorldServer::synchro(PLAYER_ID, ACTION_ID, World::TAction&)':
world/world_server.cpp:142: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp:160: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp:166: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp:172: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp:178: warning: deprecated conversion from string constant to 'char*'
world/world_server.cpp: In function 'void* World::WORLD_SERVER_MSG_HANDLER(MESSAGE_ID, SENDER, void*)':
world/world_server.cpp:2035: error: cast from 'void*' to 'int' loses precision
world/world_server.cpp:2046: error: cast from 'void*' to 'int' loses precision
world/world_server.cpp:2102: error: cast from 'void*' to 'int' loses precision
world/world_server.cpp:2113: error: cast from 'void*' to 'int' loses precision
gmake[1]: *** [world_server.o] Error 1
gmake[1]: Leaving directory `/usr/ports/games/8kingdoms/work/8Kingdoms-1.1.0'
gmake: *** [all] Error 2
*** Error code 1

Stop in /usr/ports/games/8kingdoms.
 
I tried with Portmaster now, this is what it said:

Code:
# portmaster games/8kingdoms

===>>> Port directory: /usr/ports/games/8kingdoms

        ===>>> This port is marked DEPRECATED
        ===>>> BROKEN for more than 6 month


        ===>>> If you are sure you can build it, remove the
               DEPRECATED line in the Makefile and try again.
Terminated

I tried removing that line, but it still fails.
 
That means it's about to be removed from the ports because no-one cares enough about it to fix the problems.
 
SirDice said:
That means it's about to be removed from the ports because no-one cares enough about it to fix the problems.

I see. So, is there any way to install the game Tremulous without installing this?
 
adamk said:

When I was installing Tremulous it stoped with some error and it said, to fix this error run this line.
So I run the line and it start to install some programs that it needs to run and one of them is 8kingdoms.
I will install it again today and let you know what it says exactly.
 
Well it does not ask me 8kingdoms now, I do not understand why because it asked me in the past.
But I used Portmaster this time instead Portinstall.
This is the error I got:

Code:
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -Wall -O2 -o release/master.o -c master.c
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -Wall -O2 -o release/messages.o -c messages.c
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -Wall -O2 -o release/stats.o -c stats.c
stats.c: In function 'RecordClientStat':
stats.c:64: warning: pointer targets in assignment differ in signedness
stats.c:82: warning: pointer targets in assignment differ in signedness
stats.c: In function 'RecordGameStat':
stats.c:122: warning: pointer targets in assignment differ in signedness
stats.c:125: warning: pointer targets in assignment differ in signedness
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -Wall -O2 -o release/servers.o -c servers.c
cc -o release/tremmaster release/master.o release/messages.o release/stats.o release/servers.o -lm -L/usr/local/lib -static -ltdb
/usr/bin/ld: cannot find -ltdb
gmake[2]: *** [release/tremmaster] Error 1
gmake[2]: Leaving directory `/usr/ports/games/tremulous/work/tremulous/tremulous-1.1.0-src/src/master'
gmake[1]: *** [release] Error 2
gmake[1]: Leaving directory `/usr/ports/games/tremulous/work/tremulous/tremulous-1.1.0-src/src/master'
gmake: *** [build_release] Error 2
*** Error code 1

Stop in /usr/ports/games/tremulous.
*** Error code 1

Stop in /usr/ports/games/tremulous.

===>>> make failed for games/tremulous
===>>> Aborting update

Terminated

===>>> You can restart from the point of failure with this command line:
       portmaster <flags> games/tremulous


PS: It is ok to post inside here or should I open another post?.
 
adamk said:
Install databases/tdb and try again.

Adam

Done, but it still fails with same error.

Now I tried with Portinstall and I got this:

Code:
gmake[2]: Entering directory `/usr/ports/games/tremulous/work/tremulous/tremulous-1.1.0-src/src/master'
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -Wall -O2 -o release/master.o -c master.c
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -Wall -O2 -o release/messages.o -c messages.c
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -Wall -O2 -o release/stats.o -c stats.c
stats.c: In function 'RecordClientStat':
stats.c:64: warning: pointer targets in assignment differ in signedness
stats.c:82: warning: pointer targets in assignment differ in signedness
stats.c: In function 'RecordGameStat':
stats.c:122: warning: pointer targets in assignment differ in signedness
stats.c:125: warning: pointer targets in assignment differ in signedness
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -Wall -O2 -o release/servers.o -c servers.c
cc -o release/tremmaster release/master.o release/messages.o release/stats.o release/servers.o -lm -L/usr/local/lib -static -ltdb
/usr/bin/ld: cannot find -ltdb
gmake[2]: *** [release/tremmaster] Error 1
gmake[2]: Leaving directory `/usr/ports/games/tremulous/work/tremulous/tremulous-1.1.0-src/src/master'
gmake[1]: *** [release] Error 2
gmake[1]: Leaving directory `/usr/ports/games/tremulous/work/tremulous/tremulous-1.1.0-src/src/master'
gmake: *** [build_release] Error 2
*** Error code 1

Stop in /usr/ports/games/tremulous.
*** Error code 1

Stop in /usr/ports/games/tremulous.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portinstall20120413-966-amo6n5-0 env make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! games/tremulous       (new compiler error)
 
Then I have no idea why ld would complain that it can't find libtdb. All I really know is that the tremulous port compiled just fine for me yesterday.

Adam
 
adamk said:
Then I have no idea why ld would complain that it can't find libtdb. All I really know is that the tremulous port compiled just fine for me yesterday.

Adam

I'm using AMD64 FreeBSD, could that be something?
 
Ensure the ports are cleaned before trying again. I get the feeling you're reusing the same code over and over, and that won't solve anything. Run a [cmd=]make clean-depends[/cmd] in /usr/ports/games/tremulous. Also, try sticking with one ports tool, either portmaster or portupgrade (of which portinstall is a part). They do things differently so mixing them may mean some confusion for you and the system.
 
DutchDaemon said:
Ensure the ports are cleaned before trying again. I get the feeling you're reusing the same code over and over, and that won't solve anything. Run a [cmd=]make clean-depends[/cmd] in /usr/ports/games/tremulous. Also, try sticking with one ports tool, either portmaster or portupgrade (of which portinstall is a part). They do things differently so mixing them may mean some confusion for you and the system.

Thanks for your reply, I did it but it still does not work.
 
Back
Top