CalendarServer on Ubuntu 10.0.4 Desktop

“Why should I read this silly article when I can just install the CalendarServer .deb?!”, you might be thinking. That’s easy. That deb is release 1.2, which is like a million years old or something. Lots of great stuff has been added since then, such as shared calendars and the integration of the formerly separate AddressBook server.

The concept here is to use apt to satisfy as many of the CalendarServer dependencies as possible, then let the ‘run’ script do the rest. I’ve tested this numerous times, and it works pretty flawlessly. I’ll have more detailed content later, but I just wanted to get the quick steps out there for any bleeding edgers out there…

1) edit /etc/fstab to enable xattrs by adding the “user_xattr” option.

e.g. (all on one line):

UUID=8f2bb850-0e8f-4d81-bba5-fb93ef9b9990 /               ext4    errors=remount-ro,user_xattr 0       1

after doing the above you need to reboot, or “sudo mount / -o remount”

2) sudo apt-get build-dep postgresql

3) sudo apt-get install python-setuptools python-xattr python-twisted subversion curl

4) svn co http://svn.macosforge.org/repository/calendarserver/CalendarServer/trunk CalendarServer

5) cd CalendarServer ; ./run -s

… at this point, if all goes well, you should be prompted with a message indicating that there is no config file. Run the suggested command to use the sample config file. You can then start the server with run -d, and run the protocol tests using the ‘testserver’ script.

About dre

I like all kinds of food.
This entry was posted in bit bucket. Bookmark the permalink.

2 Responses to CalendarServer on Ubuntu 10.0.4 Desktop

  1. dre says:

    Attempts to start the service will probably fail due to missing PyOpenDirectory. This is a python module used to interact with Apple’s OpenLDAP-based directory service. The failure will occur even if your config does not enable OpenDirectory.

    You can work around this by commenting out the check for Darwin in support/build.sh. Around line 525, comment out the line:

    if [ “$(uname -s)” == “Darwin” ]; then

    and also comment the next fi; after that (line 529 or so)

  2. dre says:

    Actually the Linux issue is now fixed! Somebody called ‘dre’ committed the above change recently…

Leave a Reply