# Failed to install 8kingdoms



## adripillo (Apr 9, 2012)

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:


```
# 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.


----------



## sk8harddiefast (Apr 10, 2012)

```
cd /usr/ports/games/8kingdoms
ee Makefile
```
Remove the BROKEN line and save Makefile

```
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 
	
	



```
CC=/usr/local/bin/gcc47
```


----------



## phoenix (Apr 11, 2012)

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.


----------



## adripillo (Apr 11, 2012)

Thank you both for the replies.
When I removed the line BROKEN, it started to download finally.
Now I have this error:

```
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)
```


----------



## sk8harddiefast (Apr 11, 2012)

Try:

```
cd /usr/ports/lang/gcc47
make install clean
cd /usr/ports/games/8kingdoms
make clean
make CC=/usr/local/bin/gcc47 install clean
```


----------



## adripillo (Apr 11, 2012)

Done, but it still fails


```
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.
```


----------



## adripillo (Apr 12, 2012)

I tried with Portmaster now, this is what it said:


```
# 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.


----------



## SirDice (Apr 12, 2012)

That means it's about to be removed from the ports because no-one cares enough about it to fix the problems.


----------



## adripillo (Apr 12, 2012)

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 (Apr 12, 2012)

games/tremulous does not require games/8kingdoms


----------



## adripillo (Apr 13, 2012)

adamk said:
			
		

> games/tremulous does not require games/8kingdoms



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 *yo*u know what it say*s* exactly.


----------



## adripillo (Apr 13, 2012)

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:


```
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 (Apr 13, 2012)

Install databases/tdb and try again.

Adam


----------



## adripillo (Apr 13, 2012)

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:


```
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)
```


----------



## adamk (Apr 13, 2012)

Does /usr/local/lib/libtdb.so exist?


----------



## adripillo (Apr 13, 2012)

adamk said:
			
		

> Does /usr/local/lib/libtdb.so exist?



Yes and it is linked to libtdb.so.1


----------



## adamk (Apr 13, 2012)

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


----------



## adripillo (Apr 13, 2012)

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?


----------



## DutchDaemon (Apr 13, 2012)

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.


----------



## adripillo (Apr 16, 2012)

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.


----------

