Projects
Wiki     Timeline     Roadmap     Browse Source     View Tickets     New Ticket     Search

Version 1 (modified by wsanchez@…, 8 years ago) (diff)

--

Running on various operating systems

The confirmed portability of the Calendar Server is fairly limited at this time.

Supported Operating Systems

The Calendar Server has been known to run on the following operating systems:

  • Mac OS X
    • Version 10.4 (Requires installing Python 2.4)
    • Version 10.5 Developer Preview

Portability Issues

WebDAV Property Stores

The current implementation of Twisted's web2.dav module (used by the Calendar Server) uses filesystem extended attributes to store WebDAV properties. Filesystem extended attributes are available for all file systems in Mac OS X version 10.4 and higher, but they are not a common feature of other operating systems. Linux and FreeBSD support them, for example, but only for specific file systems. Additionally, implementations vary. web2.dav uses Bob Ippolito's xattr library, which supports Mac OS X, FreeBSD, and Linux.

Some developers are working on the FreeBSD and Linux to get our usage of extended attributes working on those platforms.

Another alternative is to implement a new property store class which does not use extended attributes. The Apache Web Server, for example, uses a database to keep track of properties on files, and this method works on many more platforms and file systems.

Python 2.4

The Calendar Server was implemented using Python 2.4. Getting it to run on Python 2.3 would require a bit of back-porting. We presently use the follow features which are new in Python 2.4:

  • decorators: We use the new @decorator syntax. Changing this is easy and straightforward.
  • sets: We use the new set data type. We could use the sets module instead, which exists in Python 2.3, but we probably want to use the new type if it's available, since it's implemented in C and is presumably faster.

If you think 2.3 support is useful, prepare a patch, file a Ticket, including the patch as an attachment.