[CalendarServer-changes]  CalendarServer/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Wed Oct 28 16:22:50 PDT 2009
Author: wsanchez at apple.com
Date: 2009-10-28 16:22:49 -0700 (Wed, 28 Oct 2009)
More doc cleanup
--- CalendarServer/trunk/HACKING 2009-10-28 22:18:06 UTC (rev 4654)
+++ CalendarServer/trunk/HACKING 2009-10-28 23:22:49 UTC (rev 4655)
@@ -1,3 +1,7 @@
Developer's Guide to Hacking the Calendar Server
Property changes on: CalendarServer/trunk/HACKING
+ Date Revision
--- CalendarServer/trunk/README 2009-10-28 22:18:06 UTC (rev 4654)
+++ CalendarServer/trunk/README 2009-10-28 23:22:49 UTC (rev 4655)
@@ -1,183 +1,100 @@
-This is the core code base for a CalDAV/WebDAV/HTTP server.
+This is the core code base for Darwin Calendar Server, which is a
+CalDAV, WebDAV, and HTTP server.
For general information about the server, see:
-COPYRIGHT AND LICENSE
+Copyright and License
-This software is copyright (c) 2005-2007 Apple Inc. All
-rights reserved and is licensed under the Apache License, Version
-2.0. The Apache License is a well-established open source license,
-providing reliable and long-lived software products through
+Copyright (c) 2005-2007 Apple Inc. All rights reserved.
+This software is licensed under the Apache License, Version 2.0. The
+Apache License is a well-established open source license, enabling
collaborative open source software development.
-See the 'LICENSE' file for the full text of the license terms.
+See the "LICENSE" file for the full text of the license terms.
-Place this source directory into an empty development directory, such
-as '~/Developer/Collaboration/CalendarServer/'. The server requires a
-number of libraries in order to operate. The 'run' script in the
-sources will automatically download or check out the appropriate
-libraries and build them for you:
+**WARNING:** these instructions are for running a server from the
+source tree, which is useful for development and you edit the source
+code. These are not the correct steps for running the server in
+deployment or as part of an OS install. You should **not** be using
+the ``run`` script in system startup files (eg. ``/etc/init.d``); it
+does things (like download software) that you don't want to happen in
+Create an empty development directory, such as
+``~/Developer/CalendarServer/``. Then check out or copy this source
+project into this directory. The server requires a number of
+libraries in order to operate, which will need to be places as peers
+of the source directory. The ``run`` script in the sources will
+automatically download or check out the appropriate libraries and
+build them for you:
+The result will be a set of directories, including the CalendarServer
+source directory in your original empty directory:
+ % ls -1 ~/Developer/CalendarServer
Before you can run the server, you need to set up a configuration file
for development. There is a provided test configuration that you can
-use to start with:
+use to start with, called ``caldavd-test.plist``. Copy this to
+``caldavd-dev.plist``, which the server will use in development:
cp ./conf/caldavd-test.plist ./conf/caldavd-dev.plist
You will need to choose a "directory service" to use to populate your
-server's principals (users, groups and resources). A directory service
-provides the calendar server with information about these principals.
-Some of the directory services which are supported by the calendar
+server's principals (users, groups and resources). A directory
+service provides the calendar server with information about these
+principals. Some of the directory services which are supported by the
+calendar server include:
- * XMLDirectoryService: this service is configurable via an XML file
- that contains principal information. The file
- 'conf/auth/accounts.xml' provides an example principals
+ * ``XMLDirectoryService``: this service is configurable via an XML
+ file that contains principal information. The file
+ ``conf/auth/accounts.xml`` provides an example principals
- * OpenDirectoryService: this service uses OpenDirectory (which in
- turn uses LDAP, Active Directory, etc.) to obtain principal
+ * ``OpenDirectoryService``: this service uses Apple's OpenDirectory
+ client (which in turn uses LDAP, Active Directory, etc.) to obtain
+ principal information.
- * BasicDirectoryService and DigestDirectoryService: these services
- are configurable using configuration files in the same formats as
- used by the Apache HTTP server, allowing you to use the same
- user/group setup as a separately-running Apache server.
+The ``caldavd-test.plist`` configuration uses ``XMLDirectoryService``
+by default, set up to use ``conf/auth/accounts-test.xml``. This is a
+generally useful configuration for development and testing.
- Note that the current implementation does not allow for
- configuring resources, since Apache doesn't have resource
+This file contains a user principal, named ``admin``, with password
+``admin``, which is set up (in ``caldavd-test.plist``) to have
+administrative permissions on the server.
-The 'caldavd-test.plist' configuration uses XMLDirectoryService by
-default, set up to use 'conf/auth/accounts-test.xml'.
-This file contains a user principal, named "admin", with password
-"admin", which is set up with administrative permissions on the server.
You can then run the server as follows:
-This should start up and bind to port 8008 for HTTP and 8443 for
-HTTPS. You should then be able to connect to the server using your
-web browser (eg. Safari, Firefox) or with a CalDAV client (eg. iCal,
-The server implements the following specifications:
- * HTTP/1.1, RFC 2616
- * HTTP Authentication, RFC 2617
- * WebDAV level 1, RFC 2518
- * WebDAV Access Control Protocol, RFC 3744
- * WebDAV Quota and Size Properties, RFC 4331
- * CalDAV, draft-dusseault-caldav-15
- * CalDAV Scheduling Extensions, draft-desruisseaux-caldav-sched-02
-Note that while the server does support WebDAV, it does not support
-WebDAV level 2, which means it does not implement the LOCK and UNLOCK
-Portability may be limited in this release.
-The server requires:
- * Python 2.5
- * Zope Interface 3.1.0c1
- * PyXML 0.8.4
- * pyOpenSSL 0.6
- * python-dateutil-1.0
- * xattr 0.2 (Bob Ippolito's implementation)
- * Twisted
- * vObject
- * PyKerberos
- * PyOpenDirectory
-It also requires, naturally, anything these components depend on. For
-example, pyOpenSSL requires the OpenSSL library.
-The server is most actively developed on Mac OS 10.5 Leopard, which is
-presently only available to Apple developers in a preview release. (See
-http://developer.apple.com/ for more information.) However, it is not
-intended to run solely on that platform; that just happens to be what
-the current developers are using (because we work at Apple, and are
-building it as a feature of Mac OS X Server).
-If you are using Tiger (Mac OS 10.4), you will need to install Python
-2.5. See http://pythonmac.org/packages/ for installable packages.
-If you are using other operating systems, there may be additional
-coding work required before you can get started.
-WEBDAV PROPERTY STORAGE
-For starters, twisted.web2.dav requires Bob Ippolito's xattr library
-to access file system extended attributes, which are used to store
-WebDAV properties. File system extended attributes are available
-on all file systems in Mac OS X, and on some file systems on Linux
-and FreeBSD. Another alternative is to implement a new property store
-class which does not use extended attributes. The Apache HTTP Server, for
-example, uses a database to keep track of properties on files, and this
-method works on many more platforms and file systems.
-Linux and FreeBSD users have had some success running our calendar
-server. Check our bug tracker for status:
-The Calendar Server was implemented using Python 2.5. Backporting to
-earlier Python releases might be possible, however we use a number of
-language constructs specific to 2.5 that might make that hard.
-If you are interested in getting involved with development, be sure to
-visit our home page for more information:
-Bug reports are welcome, and contributions such as code patches and
-documentation are appreciated. Visit our bug tracker:
-You can chat with other users and developers on IRC on channel
-#calendarserver on the irc.freenode.net server network.
-You can also subscribe to our mailing lists for users and developers:
- * calendarserver-users is for users of the Calendar Server. It's the
- main forum for asking questions about installing, configuring and
- administering a Calendar Server.
- * calendarserver-dev is for developers. It's for engineering
- discussions, including design directions, ways of extending the
- server, and reviewing code.
- * calendarserver-changes is for change notifications to the source
-Register for mailing lists on our mailing lists page:
+The server should then start up and bind to port 8008 for HTTP and
+8443 for HTTPS. You should then be able to connect to the server
+using your web browser (eg. Safari, Firefox) or with a CalDAV client
Property changes on: CalendarServer/trunk/README
+ Date Revision
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the calendarserver-changes