Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: [LCS] Linux install help  (Read 4994 times)

Dryn

  • Bay Watcher
    • View Profile
[LCS] Linux install help
« on: May 20, 2008, 07:47:00 pm »

Given the awesome progress since 3.11.3, I am wanting to know if the latest version of LCS is available for Lixux? (I am running gutsy ubuntu.)

The latest that I can see on sourceforge is a package for 3.11.3. The latest on subversion is 3.11.4, I think.

If you could point me in the right direction that would be great!

Logged
You come back from the mansions of sleep with your pockets full of silverware.

gimlet

  • Bay Watcher
    • View Profile
Re: [LCS] Linux install help
« Reply #1 on: May 20, 2008, 09:49:00 pm »

I compiled the 3.12.0 version OK under Cygwin, which uses gcc++ and shouldn't be much different from linux.  It's a little misleading, to compile the current 3.12.1 version it's under the "31104branch".  
[edit: now I'm not 100% sure exactly what order I did]
I THINK it was  ./bootstrap; ./configure; make; make install

[ May 20, 2008: Message edited by: gimlet ]

Logged

Dryn

  • Bay Watcher
    • View Profile
Re: [LCS] Linux install help
« Reply #2 on: May 21, 2008, 01:48:00 am »

Cheers gimlet.

I managed to download the 31104 branch ran ./bootstrap and ./confgure without problems (none in the end at least). However when I try to 'make' I get the error below:

 

quote:
 
g++ -DHAVE_CONFIG_H -I. -I..  -DINSTALL_DATA_DIR=\"/usr/local/share\"  -I../src -g -O2 -MT crimesquad-game.o -MD -MP -MF .deps/crimesquad-game.Tpo -c -o crimesquad-game.o `test -f 'game.cpp' || echo './'`game.cpp
In file included from game.cpp:73:
./includes.h:140:23: error: alignment.h: No such file or directory
./includes.h:141:43: error: boost/archive/text_iarchive.hpp: No such file or directory
./includes.h:142:43: error: boost/archive/text_oarchive.hpp: No such file or directory
./includes.h:143:42: error: boost/serialization/vector.hpp: No such file or directory
./includes.h:144:40: error: boost/serialization/list.hpp: No such file or directory
./includes.h:145:39: error: boost/serialization/set.hpp: No such file or directory
game.cpp:74:24: error: orghandler.h: No such file or directory
game.cpp:75:24: error: testdriver.h: No such file or directory
game.cpp:76:22: error: saveload.h: No such file or directory
In file included from game.cpp:73:
./includes.h: In member function ‘void creaturest::serialize(Archive&, unsigned int)’:
./includes.h:959: error: ‘interrogation’ was not declared in this scope
./includes.h:959: error: ‘i’ was not declared in this scope
./includes.h:959: error: expected type-specifier before ‘interrogation’
./includes.h:959: error: expected `>' before ‘interrogation’
./includes.h:959: error: expected `(' before ‘interrogation’
./includes.h:959: error: expected primary-expression before ‘>’ token
./includes.h:959: error: expected `)' before ‘;’ token
./includes.h: At global scope:
./includes.h:1643: error: variable or field ‘waddnstr’ declared void
./includes.h:1643: error: expected primary-expression before ‘const’
./includes.h:1734: error: default argument for ‘std::string& defname’ has type ‘std::string’
game.cpp:80: error: ‘orgHandler’ does not name a type
game.cpp: In function ‘int main(int, char**)’:
game.cpp:354: error: ‘load’ was not declared in this scope
game.cpp:356: error: ‘testdriver’ was not declared in this scope
make[2]: *** [crimesquad-game.o] Error 1

Those directories that it can't find don't exist, although I did find alignment.h in the politics folder. I don't really know what is going wrong.

[ May 21, 2008: Message edited by: Dryn ]

Logged
You come back from the mansions of sleep with your pockets full of silverware.

Jonathan S. Fox

  • Bay Watcher
    • View Profile
    • http://www.jonathansfox.com/
Re: [LCS] Linux install help
« Reply #3 on: May 21, 2008, 04:16:00 am »

Yeah, the misleading 3.11.04 branch label refers to the version when it split off, which was because I was doing a lot of long-term work on the activate page and it was quite a while before I was able to get everything up and running correctly the way it was before with the new system. The intent is to re-merge once we're able to get everything 32/64 bit portable and reconciled, but it's ended up just becoming a thing where the alternate branch took off and did its own thing and effectively became the main branch.

Note that it's not part of my skill set to maintain the Linux port, so it might take hacking around with the installer files or even some code tweaks to keep everything even.

Also note for compiling off the latest SVN code, the current build on there is EXTREMELY unstable, and while it compiles (at least for Windows), it crashes all over the place and vomits garbage past the end of strings that got their null terminators stripped off in many places. It's also dependent on the Boost C++ libraries (this will probably become standard for future LCS builds, as I'm pushing to use Boost as part of an ongoing effort to clean up the code). Anyway, the point is, it's very very under (re-)construction, and I would definitely recommend checking out one a few updates BACK from the current build that has a version number in its description if you're just looking to play.

Edit: Dryn, your problem is twofold:

1) The install files for Linux do not know the current files and filestructure off of SVN.

2) The current build depends on the Boost libraries and it's not seeing those. You probably don't have them.

I am actually considering rolling some of these changes back, in particular the Boost dependency. My original intent with the use of the Boost library was to include the necessary dependencies on SVN so that this wouldn't become an issue for others, but it turns out that's a lot of material, and you'd probably need separate libraries for Linux and Mac compilation, making this less easy than I hoped it would be. I enjoy working with the Boost libraries, but I'm not willing to sacrifice the ability of others to work with the source for them. Particularly with this issue of Linux users compiling from source I don't want this to become a problem for others, so I'm starting to lean toward rolling back and taking another approach.

[ May 21, 2008: Message edited by: Jonathan S. Fox ]

Logged

Jonathan S. Fox

  • Bay Watcher
    • View Profile
    • http://www.jonathansfox.com/
Re: [LCS] Linux install help
« Reply #4 on: May 21, 2008, 05:01:00 am »

I've reverted the very under construction + new dependencies changes. The latest SVN should be relatively stable. You'll probably still have to tweak the installer to make it know where to look for all the files, but it shouldn't be as troublesome.
Logged

Dryn

  • Bay Watcher
    • View Profile
Re: [LCS] Linux install help
« Reply #5 on: May 21, 2008, 07:53:00 pm »

I am not sure how to change where it is looking for the headers.

Looking through the install files in the root dir but found nothing that seemed relevant.
In the ./src dir the makefiles lists the sources and locations, so I tried putting the failed ones in there. This didn't seem to have any effect.
I am getting the same error as posted above, without the 'boost' error.

Specifically it can't find alignment.h (in /politics); organization.h, testdriver.h and orghandler.h (in /organization).

Logged
You come back from the mansions of sleep with your pockets full of silverware.

Jonathan S. Fox

  • Bay Watcher
    • View Profile
    • http://www.jonathansfox.com/
Re: [LCS] Linux install help
« Reply #6 on: May 21, 2008, 08:34:00 pm »

Try moving the headers out of their subdirectories and into just /src If that works, then worst case, lacking someone with proper knowledge of how to maintain things, we can just hack it by shoving the headers all in the same place where it'll see them. But you'll have to let me know if that works for you.
Logged

Dryn

  • Bay Watcher
    • View Profile
Re: [LCS] Linux install help
« Reply #7 on: May 21, 2008, 09:44:00 pm »

Starting afresh:

1)Moved the four headers referred to in the error message into /src and started build process from the beginning. (i.e bootstrap, configure, make) Failed at make.

make  all-recursive
make[1]: Entering directory `/home/dryn/.local/share/Trash/files/crimesquad.3/31104branch'
Making all in src
make[2]: Entering directory `/home/dryn/.local/share/Trash/files/crimesquad.3/31104branch/src'
g++ -DHAVE_CONFIG_H -I. -I..  -DINSTALL_DATA_DIR=\"/usr/local/share\"  -I../src -g -O2 -MT crimesquad-cursesmovie.o -MD -MP -MF .deps/crimesquad-cursesmovie.Tpo -c -o crimesquad-cursesmovie.o `test -f 'cursesmovie.cpp' || echo './'`cursesmovie.cpp
cursesmovie.cpp: In member function ‘void filelistst::smartappend(filelistst&)’:
cursesmovie.cpp:168: error: ‘_stricmp’ was not declared in this scope
cursesmovie.cpp: In member function ‘void CursesMoviest::savemovie(char*, int)’:
cursesmovie.cpp:188: warning: deprecated conversion from string constant to ‘char*’
cursesmovie.cpp: In member function ‘void CursesMoviest::loadmovie(char*)’:
cursesmovie.cpp:225: warning: deprecated conversion from string constant to ‘char*’
make[2]: *** [crimesquad-cursesmovie.o] Error 1
make[2]: Leaving directory `/home/dryn/.local/share/Trash/files/crimesquad.3/31104branch/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dryn/.local/share/Trash/files/crimesquad.3/31104branch'
make: *** [all] Error 2

2)Edited makefile to refer to the four header files. Failed at make.

3)Tried moving all headers into /src (just for kicks)
Got a Make error:

make  all-recursive
make[1]: Entering directory `/home/dryn/.local/share/Trash/files/crimesquad.3/31104branch'
Making all in src
make[2]: Entering directory `/home/dryn/.local/share/Trash/files/crimesquad.3/31104branch/src'
g++ -DHAVE_CONFIG_H -I. -I..  -DINSTALL_DATA_DIR=\"/usr/local/share\"  -I../src -g -O2 -MT crimesquad-cursesmovie.o -MD -MP -MF .deps/crimesquad-cursesmovie.Tpo -c -o crimesquad-cursesmovie.o `test -f 'cursesmovie.cpp' || echo './'`cursesmovie.cpp
cursesmovie.cpp: In member function ‘void filelistst::smartappend(filelistst&)’:
cursesmovie.cpp:168: error: ‘_stricmp’ was not declared in this scope
cursesmovie.cpp: In member function ‘void CursesMoviest::savemovie(char*, int)’:
cursesmovie.cpp:188: warning: deprecated conversion from string constant to ‘char*’
cursesmovie.cpp: In member function ‘void CursesMoviest::loadmovie(char*)’:
cursesmovie.cpp:225: warning: deprecated conversion from string constant to ‘char*’
make[2]: *** [crimesquad-cursesmovie.o] Error 1
make[2]: Leaving directory `/home/dryn/.local/share/Trash/files/crimesquad.3/31104branch/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dryn/.local/share/Trash/files/crimesquad.3/31104branch'
make: *** [all] Error 2

4)Changed makefile.am crimesquad_SOURCES to include all the headers, now in /src. Still failed.


Edit: Almost forgot to say 'Thanks for the help'  :)

[ May 21, 2008: Message edited by: Dryn ]

Logged
You come back from the mansions of sleep with your pockets full of silverware.

Jonathan S. Fox

  • Bay Watcher
    • View Profile
    • http://www.jonathansfox.com/
Re: [LCS] Linux install help
« Reply #8 on: May 21, 2008, 10:05:00 pm »

Well, there's an error in cursesmovie.cpp, where it's trying to use a microsoft only function. I've fixed that, so give it another shot with the latest and greatest off SVN.
Logged

Dryn

  • Bay Watcher
    • View Profile
Re: [LCS] Linux install help
« Reply #9 on: May 21, 2008, 10:51:00 pm »

1) Ran build process with no changes. Once again failed at make.

make  all-recursive
make[1]: Entering directory `/home/dryn/.local/share/Trash/files/31104branch.4'
Making all in src
make[2]: Entering directory `/home/dryn/.local/share/Trash/files/31104branch.4/src'
g++ -DHAVE_CONFIG_H -I. -I..  -DINSTALL_DATA_DIR=\"/usr/local/share\"  -I../src -g -O2 -MT crimesquad-game.o -MD -MP -MF .deps/crimesquad-game.Tpo -c -o crimesquad-game.o `test -f 'game.cpp' || echo './'`game.cpp
In file included from ./includes.h:26,
                from game.cpp:73:
./config.h:47:7: warning: no newline at end of file
In file included from game.cpp:73:
./includes.h:108:11: error: #error "You must define either USE_NCURSES or USE_NCURSES_W."
./includes.h:140:23: error: alignment.h: No such file or directory
game.cpp:74:24: error: orghandler.h: No such file or directory
game.cpp:75:24: error: testdriver.h: No such file or directory
In file included from ./includes.h:26,
                from game.cpp:73:
./config.h:8: error: ‘string’ does not name a type
./config.h:27: error: ‘string’ does not name a type
./config.h:40: error: ‘string’ has not been declared
./config.h:40: error: ‘string’ has not been declared
./config.h:42: error: ISO C++ forbids declaration of ‘vector’ with no type
./config.h:42: error: expected ‘;’ before ‘<’ token
game.cpp:77: error: ‘orgHandler’ does not name a type
game.cpp: In function ‘int main(int, char**)’:
game.cpp:278: error: ‘raw_output’ was not declared in this scope
game.cpp:353: error: ‘testdriver’ was not declared in this scope
make[2]: *** [crimesquad-game.o] Error 1
make[2]: Leaving directory `/home/dryn/.local/share/Trash/files/31104branch.4/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dryn/.local/share/Trash/files/31104branch.4'
make: *** [all] Error 2

2)Ran build process with orghandler.h, testdriver.h, organization.h and alignment.h moved into scr and edited the makefile. Returned same error.

Logged
You come back from the mansions of sleep with your pockets full of silverware.

Jonathan S. Fox

  • Bay Watcher
    • View Profile
    • http://www.jonathansfox.com/
Re: [LCS] Linux install help
« Reply #10 on: May 22, 2008, 01:45:00 am »

Okay, this is getting silly, so I've gone ahead and dragged out the OSX Terminal and gone through another dozen iterations until I was able to build the game and have it running natively on OSX. Try the latest SVN and report back if you have any further problems.
Logged

Dryn

  • Bay Watcher
    • View Profile
Re: [LCS] Linux install help
« Reply #11 on: May 22, 2008, 09:34:00 pm »

I tried the Head, which failed.

make  all-recursive
make[1]: Entering directory `/home/dryn/crimesquad/Head/31104branch'
Making all in src
make[2]: Entering directory `/home/dryn/crimesquad/Head/31104branch/src'
g++ -DHAVE_CONFIG_H -I. -I..  -DINSTALL_DATA_DIR=\"/usr/local/share\"  -I../src -g -O2 -MT crimesquad-game.o -MD -MP -MF .deps/crimesquad-game.Tpo -c -o crimesquad-game.o `test -f 'game.cpp' || echo './'`game.cpp
In file included from organization/orghandler.h:25,
                from game.cpp:74:
./organization/organization.h:86:7: warning: no newline at end of file
In file included from game.cpp:74:
organization/orghandler.h:52:7: warning: no newline at end of file
In file included from game.cpp:75:
organization/testdriver.h:4:19: warning: no newline at end of file
In file included from ./organization/organization.h:31,
                from organization/orghandler.h:25,
                from game.cpp:74:
./configfile.h:64: error: ‘>>’ should be ‘> >’ within a nested template argument list
make[2]: *** [crimesquad-game.o] Error 1
make[2]: Leaving directory `/home/dryn/crimesquad/Head/31104branch/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dryn/crimesquad/Head/31104branch'
make: *** [all] Error 2

However revision 201 and 202 compile (yay!), though 202 crashes. It loads the initial screen. I press any key to start. It shows the high scores. It hit another key to carry on. It then crashes with a seg fault. 201 doesn't seem to have any issues (other then some slight graphics problems). I even managed to burn flags!

Thanks for the assistance, Jonathan. It really is appreciated.

Logged
You come back from the mansions of sleep with your pockets full of silverware.

Jonathan S. Fox

  • Bay Watcher
    • View Profile
    • http://www.jonathansfox.com/
Re: [LCS] Linux install help
« Reply #12 on: May 22, 2008, 10:32:00 pm »

In 202, did you have a save file in the directory? If so, that would (probably) trigger a crash at pretty much exactly the point you described. It's not compatible with previous saves.

And yes, the latest SVN as of today does not build, so it was good to go back a revision or two on that one.  ;) That was only committed to work out some issues we were discussing. 202 is the latest buildable one.

Logged

Dryn

  • Bay Watcher
    • View Profile
Re: [LCS] Linux install help
« Reply #13 on: May 25, 2008, 07:06:00 pm »

Yeah, it seems I forgot to uninstall whatever revision I already had installed. I can also report that 212 builds fine  :)
Logged
You come back from the mansions of sleep with your pockets full of silverware.

Puzzlemaker

  • Bay Watcher
    • View Profile
Re: [LCS] Linux install help
« Reply #14 on: May 25, 2008, 07:53:00 pm »

212 is an um.

Interesting version.

It's a... WIP.  Make sure you have all the config files.  You may be sieged more, in an um... interesting fashion.

It's a sneak peak to what I am planning to implement.

Edit:  Oh, yeah, also, save doesn't work.  Whooopsies.

[ May 25, 2008: Message edited by: Puzzlemaker ]

Logged
The mark of the immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one.