Installing GNUStep on FreeBSD 15.0-RELEASE

 

 


Installing GNUStep in FreeBSD 15.0 RELEASE 

Installing FreeBSD ports

For installing the required ports at first update the ports tree. Us can use portmaster or pkg.

As user root do a:

# portsnap fetch extract update
# cd /usr/ports/ports-mgmt/portmaster && make install clean
# portsnap fetch update
# pkg version -l "<"
# portmaster -L 
# portmaster -a
# portmaster -af
(if some port fails) on a regular basis.

Install bash as root do:

# pkg install bash
# pkg install xorg
# pkg install gnustep

Installing the Virtual Box Guest Additions port


as root:

# pkg install virtualbox-ose-additions
pw groupmod wheel -m gnustep
 vboxguest_enable="YES"
 vboxservice_enable="YES"
 hald_enable="YES"
 dbus_enable="YES"
Reboot or start both services by hand:
 /usr/local/etc/rc.d/dbus start
 /usr/local/etc/rc.d/hald start

Installing the Window Maker port as root:

 # pkg install windowmaker

enabling Window Maker

 #!/bin/sh
 exec wmaker

Installing GNUstep from FreeBSD ports into the System Domain

Installing the necessary tools

 # pkg install subversion
 # pkg install sudo
 # visudo
 # %wheel ALL=(ALL) ALL

Installing the GNUstep libraries and framewoks

I've chosen the way of installing the GNUstep ports into the System domain so I don't need to look after the right dependencies for myself but let the FreeBSD's port system handle this.

Installing the Objective-C 2 runtime as root:

 # pkg install libobjc2
 # pkg install gnustep-make
 # pkg install gnustep-base
 # pkg install gnustep-gui
 # pkg install gnustep-back
GNUstep examples are a collection of simple GNUstep apps to guide you into developing for GNUstep.


 # portmaster misc/gnustep-examples
 # portmaster deskutils/systempreferences
 # portmaster deskutils/gworkspace
 # portmaster x11/terminal.app
 # portmaster devel/projectcenter
# portmaster devel/gorm
 $ echo . /usr/local/GNUstep/System/Library/Makefiles/GNUstep.sh >> ~/.profile
 $ echo gdnc >> ~/.profile
 # echo source /usr/local/GNUstep/System/Library/Makefiles/GNUstep.csh >> ~/.cshrc
 # echo gdnc >> ~/.cshrc

as root and as gnustep, edit the .xinitrc file:

 $ vi ~/.xinitrc
 #!/bin/sh
. /usr/local/GNUstep/System/Library/Makefiles/GNUstep.sh
 
exec wmaker 
exec openapp Workspace
 

 $ startx
 $ mkdir GNUstep-sources
 $ cd GNUstep-sources/
 $ svn co svn://svn.gna.org/svn/gnustep/trunk .

Building libobjc2 (GNUstep Objective-C 2.0 runtime) from source

 $ cd ~/GNUstep-sources/modules/dev-libs/libobjc2/
 $ CC=clang CXX=clang++ make
 $ sudo -E make install
 $ mkdir Build
 $ cd Build/
 $ cmake .. -DCMAKE_C_COMPILER=clang -DCMKAE_CXX_COMPILER=clang++
 $ make && sudo -E make install

Building GNUstep make from source

 $ cd ~/GNUstep-sources/modules/core/make/
 $ ./configure --prefix=/usr/local/GNUstep --with-config-file=/usr/local/GNUstep/GNUstep-trunk.conf --enable-objc-nonfragile-abi --enable-native-objc-exceptions --with-layout=gnustep --enable-debug-by-default CC=clang CXX=clang++
 $ sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install

Don't forget to source GNUstep.sh and make sure this is done on every login:

 $ . /System/Library/Makefiles/GNUstep.sh
 $ echo . /System/Library/Makefiles/GNUstep.sh >> ~/.profile

Building GNUstep base from source

 $ cd ~/GNUstep-sources/modules/core/base/
 $ ./configure --disable-mixedabi CC=clang CXX=clang++
 $ gmake && sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install

Building GNUstep gui from source

 $ cd ~/GNUstep-sources/modules/core/gui/
 $ gmake && sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install

Building GNUstep back from source

 $ cd ~/GNUstep-sources/modules/core/back/
 $ gmake -j 8 && sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install

Building GNUstep examples

 $ cd ~/GNUstep-sources/modules/usr-apps/examples/
 $ gmake -j 8 && sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install
 $ su -
 # portmaster databases/postgresql94-server
 # portmaster databases/postgresql-odbc
 # echo postgresql_enable=\"YES\" >> /etc/rc.conf
 # /usr/local/etc/rc.d/postgresql initdb
 # /usr/local/etc/rc.d/postgresql start
 $ cd ~/GNUstep-sources/modules/dev-libs/renaissance/
 $ gmake -j 8 && sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install

 $ cd ~/GNUstep-sources/modules/dev-libs/gdl2/
 $ ./configure CC=clang CXX=clang++
 $ gmake -j 8 && sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install

 $ cd ~/GNUstep-sources/modules/dev-apps/projectcenter/
 $ gmake -j 8 && sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install

 $ cd ~/GNUstep-sources/modules/dev-apps/gorm/
 $ gmake -j 8 && sudo -E gmake GNUSTEP_INSTALLATION_DOMAIN=LOCAL install
That's it for now. 

Have fun developing with and for GNUstep!