resistance is obsolete ™ ;-)

Building Sources on MacOSX

Building on MacOSX is a bit different then building on Linux because the Cocoa Foundation library is used instead of libFoundation.
Note: updated for SOPE 4.3 / OGo 1.0a.

Link Collection

  • MacOSX Port Info
  • MacOSX Porting Project
  • OGo Build Guide
  • Intro

    Well, building on MacOSX is almost exactly the same like building on Linux. The major difference is that you do not need to compile gstep-objc and libFoundation from ThirdParty and use the Cocoa Foundation library instead.

    To get help with anything MacOSX related, feel free to join the OGo MacOSX Mailing List.

    Configure GNUstep Make

    First, fetch GNUstep Make: gstep-make 1.10.0.
    GNUstep Make is both, a makefile package as well as an environment to run application in. Difficult too describe ;-), but the important point is that you always need to source GNUstep.sh before trying to build OGo stuff or trying to run OGo tools/apps!
    The nice thing is that you can compile OGo into an own root, so it doesn't clutter your system.

    When the download is complete, you uncompress the sources and run configure:

    cd gnustep-make-1.10.0
    OGoROOT="$HOME/OGoRoot"
    ./configure --prefix=$OGoROOT \
    --without-system-root	\
    --with-user-root=$OGoROOT	\
    --with-local-root=$OGoROOT	\
    --with-network-root=$OGoROOT	\
    --with-library-combo=apple-apple-nil
    

    When you are done, you need to install gstep-make:

    make -s install
    

    And never forget to source GNUstep.sh, best is to place that in your ~/.profile:

    source ~/OGoRoot/Library/Makefiles/GNUstep.sh
    

    Building OGo Sources

    When you are done with gstep-make, fetch the OGo sources, either from Subversion or the snapshot on download.opengroupware.org (which is as current as the public Subversion!).
    Again: before trying to build ensure that GNUstep.sh is sourced (ensure by issuing env | grep GNUSTEP_USER).

    Building ThirdParty stuff ...

    MacOSX comes with batteries included, so you don't need a lot of stuff from the ThirdParty build page.
    On Panther You only need to build libical.

    Building SOPE

    Before you can build SOPE (more exactly sope-gdl1), you need to have PostgreSQL client libraries and headers installed on your system.
    You can download a nice package over at entropy.ch.

    Except for that it is exactly like described in the SOPE Build Guide.

    Building OpenGroupware.org

    Well, and finally just build OGo as described in the OGo Build Guide.
    I don't think there are any surprises.

    Finally Configure the Environment...

    You need to set up the Resources/WebServerResources links from $GNUSTEP_USER_ROOT to the sources, set up the default, maybe compile mod_ngobjweb (contained in SOPE/sope-appserver) and configure Apache. Load the database schema into PostgreSQL.
    Well, what else? Feel free to comment the document or send feedback to helge.hess@opengroupware.org ;-)

    Load Database Schema

    First you need to create an OGo database:

    su - postgres
    createuser OGo
    createdb OGo
    

    You might also need to patch pg_hba.conf so that this works:

    psql -h localhost OGo OGo
    

    With your own user account. If that works, load the schema:

    cd OpenGroupware.org/Database/PostgreSQL/
    psql -h localhost OGo OGo < pg-build-schema.psql
    
    Setup Links

    OGo locates some resources using links:

    pushd $GNUSTEP_USER_ROOT
    ln -s ~/myogosrctree/WebUI/Resources .
    ln -s ~/myogosrctree/Themes/WebServerResources .
    ln -s ~/myogosrctree/WebUI/Templates Library/OpenGroupware.org-1.0a/Templates
    
    Defaults

    Oh well, so many defaults ... The MacOSX Port Page contains some info. With OGo 1.0a most defaults are optional!

    Apache Module

    Like on Linux you should always connect OGo with Apache, that is, with the OGo mod_ngobjweb module. Fortunately mod_ngobjweb compiles without glitches out of the box :-)

    cd OpenGroupware.org/SOPE/mod_ngobjweb
    make
    

    You need to copy the resulting .so into /usr/libexec/httpd/ and configure your httpd.conf like on Linux.

    whyclose

    We welcome your feedback!
    Trademarks.  
    This site is sponsored by
    SKYRIX Software AG
    ZideOne GmbH
    MDlink