Page 1 of 1

Notes for compiling Oolite on Linux with GNUstep1.19

Posted: Mon Jun 07, 2010 6:29 am
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
}

Posted: Mon Jun 07, 2010 7:42 am
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.

Posted: Mon Jun 07, 2010 9:16 am
by Micha
Thanks :)