Well, a bunch of people were quite interested in the news that Apple have released a CalDAV server under an open source license, myself included. It is available from the CalendarServer project
webpage.
They state that they've only tested it under MacOS X. Which as I 've tried to compile it under Linux certainly shows!
I've managed to fight through the various bits and pieces and managed to get it to run! <phew>
Here are a few notes regarding my experience, some steps and packages might be missing. These are directly related to Debian Unstable.
Required Debian packages:
- python2.4-dev
- libkrb5-dev
- attr (and make sure that partition is mounted with the option user_xattr, as mentioned in to the comments you can also run `mount -oremount,user_xattr <mount point>`)
You need to build the Python xattr package, by running (somewhere handy) the following. You may not need to actually checkout the code first. I had to do this as it wasn't automatically checked out for me. Of course, YMMV.
svn checkout http://svn.red-bean.com/bob/xattr/trunk/ xattr
<become root>
cd xattr
export C_INCLUDE_PATH=/usr/include/python2.4
python setup.py install
The Python module plistlib.py to read MacOS X PList files is required, it is available from
SVN. I copied it into /usr/local/lib/python2.4/site-packages on my machine and it was picked up.
Some of the packages which are checked out from SVN require some patches applied to them. The patches are:
- Twisted
- PyKerberos - Also the patches from trac might be useful. Don't worry about the includes one that is on trac, my supplied patch over rides that.
PyKerberos will need to be patched before it will compile, Twisted will compile but will do the wrong things with the extended attributes until is is patched. Then just re-running "run" from inside the CalendarServer directory should pick up the change.
I found the method that worked reasonably well was run "run -s" as provided by CalendarServer and whenever it broke (after checking out the required packages) apply the patch that I've provided, then run "run -s" again.
Update: Added details about plistlib.py and alternative to mounting the filesystem. Thanks Andrew M.
Update 2: Add fact that xattr wasn't automatically downloaded for me.
Update 3: The PyKerberos patch should now continue to work for MacOS X folks, and added details about the patches from Trac.