Rough notes for getting OpenSRF running on OS X

This was tested on master OpenSRF @ba3ca05, OS X Lion

You need to install XCode and MacPorts.

In MacPorts install something like the following ports:

apache2 @2.2.19_0+preforkmpm+universal (active) platform='darwin 11' archs='i386 x86_64'
apr @1.4.5_1+universal (active) platform='darwin 11' archs='i386 x86_64'
ejabberd @2.1.8_0 (active) platform='darwin 11' archs='x86_64'
libmemcached @0.43_0+dtrace+universal (active) platform='darwin 11' archs='i386 x86_64'
libxml2 @2.7.8_0+universal (active) platform='darwin 11' archs='i386 x86_64'
memcached @1.4.5_1+universal (active) platform='darwin 11' archs='i386 x86_64'
p5-cache-memcached @1.29_0 (active) platform='darwin 11' archs='noarch'
p5-datetime-format-iso8601 @0.07_0+universal (active) platform='darwin 11' archs='i386 x86_64'
p5-dbi @1.616_1+universal (active) platform='darwin 11' archs='i386 x86_64'
p5-error @0.17016_1 (active) platform='darwin 11' archs='noarch'
p5-json-xs @2.23_1+universal (active) platform='darwin 11' archs='i386 x86_64'
p5-net-server @0.99_1 (active) platform='darwin 11' archs='noarch'
p5-universal-require @0.13_1 (active) platform='darwin 11' archs='noarch'
p5-unix-syslog @1.1_1+universal (active) platform='darwin 11' archs='i386 x86_64'
p5-xml-libxml @1.84_0+universal (active) platform='darwin 11' archs='i386 x86_64'
perl5.12 @5.12.3_1+universal (active) platform='darwin 11' archs='i386 x86_64'
pkgconfig @0.26_0+universal (active) platform='darwin 11' archs='i386 x86_64'

Do something like this:

git clone git://git.evergreen-ils.org/OpenSRF.git
cd OpenSRF

You need to do this to src/c-apps/timejson.c

diff --git a/src/c-apps/timejson.c b/src/c-apps/timejson.c
index c0ab46e..2cafa4b 100644
--- a/src/c-apps/timejson.c
+++ b/src/c-apps/timejson.c
@@ -5,7 +5,6 @@
 #include <time.h>
 #include <sys/time.h>
 #include <sys/resource.h>
-#include <malloc.h>
 #include "opensrf/utils.h"
 #include "opensrf/osrf_json.h"

Then do this or something:

./autogen.sh
./configure --with-apxs=/opt/local/apache2/bin/apxs  --with-libraries=/opt/local/lib:/usr/lib --with-includes=/opt/local/include/ --with-apache=/opt/local/include --with-apr=/opt/local/include/apr-1/ --with-libxml=/opt/local/include/libxml2
make
sudo make install

You need to do this at some point and it needs to be done each time you reboot before you start Ejabberd, if you want to run OpenSRF:

sudo ifconfig lo0 alias 127.0.1.2
sudo ifconfig lo0 alias 127.0.1.3

Be sure to add the usual stuff to /etc/hosts and ejabberdcfg

Add an OpenSRF user via the normal "System Preferences" way

# run this before starting OpenSRF

export DYLD_LIBRARY_PATH=/opensrf