Notes for compiling Oolite on Linux with GNUstep1.19

For discussion of ports to POSIX based systems, especially using GNUStep.

Moderators: another_commander, winston, Getafix

Post Reply
User avatar
Micha
Commodore
Commodore
Posts: 815
Joined: Tue Sep 02, 2008 2:01 pm
Location: London, UK
Contact:

Notes for compiling Oolite on Linux with GNUstep1.19

Post by Micha »

Several issues have already been found with GNUstep-base1.19.3, the version of gnustep shipped with the latest versions of several popular Linux Distros.

If you are just wanting to play or test Oolite, please use the autopackage version of Oolite on affected systems.

If you want to compile your own copy of Oolite on an affected distro, you should first install a good version of GNUstep.

(Edited 2010.06.06 - made 'gui' and 'back' optional as per Getafix' suggestion)
For Oolite, the last version which appears to be reasonably certain to have no issues is gnustep-base1.18. You can get it from the gnustep ftp server:
ftp://ftp.gnustep.org/pub/gnustep/core/

The tarball versions for gnustep 1.18 are:
  • gnustep-make-2.0.7.tar.gz
  • gnustep-base-1.18.0.tar.gz
  • gnustep-gui-0.16.0.tar.gz
  • gnustep-back-0.16.0.tar.gz
Please note that Oolite only requires the 'make' and 'base' packages to compile and run properly.

(Edited 2010.06.11 - gnustep1.21 appears to have severe issues - please stick with 1.18 for now or at least, verify any bugs with gnustep1.18 before raising them
I have also tried the latest gnustep snapshot which appears to be working (for now). You can get it from here:
ftp://ftp.gnustep.org/pub/daily-snapshots/

I install these into "/opt" rather than into the default "/usr/local" and configure them such that they will not overwrite the system-installed /etc/GNUstep.conf or interfere with it. Follow these steps:
  1. Untar the individual tarballs, or, with the daily snapshot, the single tarball which contains all four packages. You will end up several sub-directories, one each for 'make', 'base', and optionally, 'gui', and 'back'.
  2. Build the 'make' package first:
    1. cd into the make directory
    2. ./configure --prefix=/opt/gnustep --with-config-file=/opt/gnustep/GNUstep.conf
    3. make
    4. make install (NOTE: You will either need to be root for this, or have created /opt/gnustep and make it writeable for your current user)
    5. IMPORTANT: You now must source your new gnustep configuration before you can build the rest.
      1. . /opt/gnustep/System/Library/Makefiles/GNUstep-reset.sh
      2. . /opt/gnustep/System/Library/Makefiles/GNUstep.sh
  3. Build the 'base' package next:
    1. cd into the base directory
    2. ./configure --prefix=/opt/gnustep --with-config-file=/opt/gnustep/GNUstep.conf
    3. make
    4. make install
  4. You're done! You can use the same procedure to optionally build the 'base' and 'gui' packages as well.
Now, whenever you want to compile or run your compiled Oolite, you must ensure the newly-compiled GNUstep is configured correctly. To do so, source the GNUstep.sh file into your current shell (note the leading '.'):

Code: Select all

. /opt/gnustep/System/Library/Makefiles/GNUstep-reset.sh
. /opt/gnustep/System/Library/Makefiles/GNUstep.sh
You can also add the above into your ~/.bashrc.

I have the following snippets in my ~/.bashrc to easily switch between versions of GNUstep:

Code: Select all

function gnustep_sys()
{
	. /usr/share/GNUstep/Makefiles/GNUstep-reset.sh
	. /usr/share/GNUstep/Makefiles/GNUstep.sh
}

function gnustep_opt()
{
	. /opt/gnustep/System/Library/Makefiles/GNUstep-reset.sh
	. /opt/gnustep/System/Library/Makefiles/GNUstep.sh
}
Last edited by Micha on Fri Jun 11, 2010 9:48 pm, edited 2 times in total.
The glass is twice as big as it needs to be.
User avatar
Getafix
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 979
Joined: Tue Apr 01, 2008 12:55 pm
Location: A small ice asteroid, orbiting Oresrati in Galaxy 8 (a.k.a. northwest Armorica).
Contact:

Post by Getafix »

I don't think that gnustep-gui and gnustep-back are necessary, at least for oolite.
I have only built gnustep-make and gnustep-base (on a vanilla Lucid) and oolite is more than happy.
"Any sufficiently advanced information is indistinguishable from noise." [Newman, Lachmann, Moore]
User avatar
Micha
Commodore
Commodore
Posts: 815
Joined: Tue Sep 02, 2008 2:01 pm
Location: London, UK
Contact:

Post by Micha »

Thanks :)
The glass is twice as big as it needs to be.
Post Reply