Revision of Darwin Calendar and Contact Server from Tue, 03/13/2012 - 15:55

Revisions allow you to track differences between multiple versions of your content, and revert back to older versions.

The open source Calendar and Contacts Server project is a standards-compliant server implementing the CalDAV and CardDAV protocols. It provides a shared location on the network allowing multiple users to store and edit calendaring and contact information.

http://dcswiki.org/dwiki/doku.php?id=linux_from_source

Installation
Calendar Server requires a filesystem that supports Extended File Attributes (xattr). The EXT3 filesystem on the CentOS 6 supported it, just need to enable it for the disk in /etc/fstab

/dev/sda1 /                       ext3    defaults,user_xattr        1 1

Then reboot for it to remount the drive with xattr enabled.
Create a directory to hold the calendar data:

mkdir -p /var/calData/root
mkdir -p /var/calData/data
chown daemon:daemon /var/calData/root
chown daemon:daemon /var/calData/data

Install some dependencies using yum:

yum install libevent libevent-devel openssl-devel krb5-server krb5-workstation readline-devel

PyOpenSSl requires a higher version of OpenSSL than the one that comes with CentOS (0.9.8e):
http://j3pd.wordpress.com/2011/08/31/upgrading-openssl/

DCS requires SQLite, a self-contained, serverless, zero-configuration, transactional SQL database engine, to manage some internal databases:

cd /extra/src
wget http://www.sqlite.org/sqlite-autoconf-3071000.tar.gz 
tar zxf sqlite-autoconf-3071000.tar.gz
cd sqlite-autoconf-3071000

Configure, build and install:

./configure
make
make install

Install an updated version of Python which Calendar Server requires:

cd /extra/src
wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxf Python-2.7.2.tgz
cd Python-2.7.2
./configure --prefix=/usr
make
make install
echo '/usr/lib/python2.7' >> /etc/ld.so.conf.d/python2.7.conf
ldconfig

Upgrading Python broke the installed yum program which requires Python 2.4. Edit /usr/bin/yum and change the first line to:

#!/usr/bin/python2.4

Download EasyInstall and run it to install the appropriate setuptools egg for your Python version:

cd /extra/src
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

No packaged tarballs are provided for the source code so use Subversion to download it:

mkdir /extra/calendar
cd /extra/calendar
svn co http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk CalendarServer
svn co http://svn.calendarserver.org/repository/calendarserver/CalDAVClientLibrary/trunk CalDAVClientLibrary
svn co http://svn.calendarserver.org/repository/calendarserver/PyKerberos/trunk PyKerneros
cd PyKerneros
export PATH=$PATH:/usr/kerberos/bin
python setup.py build
python setup.py install

Build the Calendar Server:

cd /extra/calendar/CalendarServer
./run -s

Resources
http://www.mail-archive.com/calendarserver-users@lists.macosforge.org/msg00195/LinuxBuildAndRun-DarwinCalendarServer
http://www.rho.cc/index.php/calendar-and-contact-server/59-calendar-setup/48-installing-darwin-calendar-server-on-centos-5

Recent Updates

  • 2 years 2 weeks ago
  • 2 years 2 weeks ago
  • 2 years 2 weeks ago
    php 8.x
  • 2 years 2 weeks ago
    10.6.7
  • 2 years 2 weeks ago
    Drop Centos 5/6 stuff