Index: head/www/calendarserver/Makefile =================================================================== --- head/www/calendarserver/Makefile (revision 428899) +++ head/www/calendarserver/Makefile (revision 428900) @@ -1,100 +1,90 @@ # $FreeBSD$ PORTNAME= calendarserver -PORTVERSION= 8.0 -PORTREVISION= 1 -CATEGORIES= www python -MASTER_SITES= http://www.lechner-rau.de/downloads/ +PORTVERSION= 9.0 +CATEGORIES= www python +MASTER_SITES= https://github.com/apple/ccs-calendarserver/archive/ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} -DISTNAME= CalendarServer-${PORTVERSION} +DISTNAME= CalendarServer-${PORTVERSION} MAINTAINER= axel.rau@chaos1.de COMMENT= Calendar and Contacts Server from Apple (RFC 4791, RFC 6352) LICENSE= APACHE20 -FETCH_DEPENDS= svn:devel/subversion -BUILD_DEPENDS= ${FETCH_DEPENDS} RUN_DEPENDS= memcached:databases/memcached \ - ${PYTHON_PKGNAMEPREFIX}calendar>=0.15423:devel/py-calendar \ - ${PYTHON_PKGNAMEPREFIX}PyGreSQL>=4.1,1:databases/py-PyGreSQL \ + ${PYTHON_PKGNAMEPREFIX}calendar>=2.1:devel/py-calendar \ + ${PYTHON_PKGNAMEPREFIX}PyGreSQL>=5.0:databases/py-PyGreSQL \ ${PYTHON_PKGNAMEPREFIX}pycrypto>=2.6.1:security/py-pycrypto \ - ${PYTHON_PKGNAMEPREFIX}dateutil>=2.4.2:devel/py-dateutil \ - ${PYTHON_PKGNAMEPREFIX}openssl>=0.14:security/py-openssl \ - ${PYTHON_PKGNAMEPREFIX}pg8000>=1.10.2:databases/py-pg8000 \ - ${PYTHON_PKGNAMEPREFIX}psutil>=3.4.2:sysutils/py-psutil \ - ${PYTHON_PKGNAMEPREFIX}pytz>=2016.1,1:devel/py-pytz \ - ${PYTHON_PKGNAMEPREFIX}service_identity>=14.0.0:security/py-service_identity \ - ${PYTHON_PKGNAMEPREFIX}setproctitle>=1.1.9:devel/py-setproctitle \ + ${PYTHON_PKGNAMEPREFIX}dateutil>=2.5.3:devel/py-dateutil \ + ${PYTHON_PKGNAMEPREFIX}openssl>=16.0.0:security/py-openssl \ + ${PYTHON_PKGNAMEPREFIX}pg8000>=1.10.6:databases/py-pg8000 \ + ${PYTHON_PKGNAMEPREFIX}psutil>=4.3.0:sysutils/py-psutil \ + ${PYTHON_PKGNAMEPREFIX}pytz>=2016.7:devel/py-pytz \ + ${PYTHON_PKGNAMEPREFIX}service_identity>=16.0.0:security/py-service_identity \ + ${PYTHON_PKGNAMEPREFIX}setproctitle>=1.1.10:devel/py-setproctitle \ ${PYTHON_PKGNAMEPREFIX}sqlite3>=2.7:databases/py-sqlite3 \ - ${PYTHON_PKGNAMEPREFIX}sqlparse>=0.1:databases/py-sqlparse \ - ${PYTHON_PKGNAMEPREFIX}twext>=0.15423:devel/py-twext \ - ${PYTHON_PKGNAMEPREFIX}twisted>=15.4.0:devel/py-twisted \ - ${PYTHON_PKGNAMEPREFIX}xattr>=0.7.5:devel/py-xattr \ + ${PYTHON_PKGNAMEPREFIX}twext>=0.20160817:devel/py-twext \ + ${PYTHON_PKGNAMEPREFIX}twisted>=16.4.1:devel/py-twisted \ + ${PYTHON_PKGNAMEPREFIX}xattr>=0.7.8:devel/py-xattr \ ${PYTHON_PKGNAMEPREFIX}zope.interface>=4.1.3:devel/py-zope.interface +PORTDOCS= * +PORTEXAMPLES= * +OPTIONS_DEFINE= DOCS EXAMPLES + USES= pgsql:9.1+ python:2.7 USE_PYTHON= autoplist distutils +NO_ARCH=yes SUB_FILES= pkg-message SUB_LIST+= USER=${USERS} USE_RC_SUBR= caldavd SUB_LIST+= PYTHON_CMD=${PYTHON_CMD} -SVN_REPOSITORY_URL= http://svn.calendarserver.org/repository/calendarserver -SVN_TAG1= CalendarServer/tags/release/${DISTNAME} -SVN_CMD1= svn export - ETCDIR= ${PREFIX}/etc/caldavd SHAREDIR= ${PREFIX}/share/caldavd DBDIR= /var/db/caldavd LOGDIR= /var/log/caldavd RUNDIR= /var/run/caldavd PLIST_SUB= USER=${USERS} GROUP=${GROUPS} \ ETCDIR=${ETCDIR} \ DBDIR=${DBDIR} \ LOGDIR=${LOGDIR} \ RUNDIR=${RUNDIR} +WRKSRC= ${WRKDIR}/ccs-calendarserver-CalendarServer-9.0 CALDAVD_USER= caldavd -USERS= ${CALDAVD_USER} -GROUPS= ${CALDAVD_USER} +USERS= ${CALDAVD_USER} +GROUPS= ${CALDAVD_USER} -maint-gen-distfile: - @if [ ! -f "${DISTDIR}/${DISTNAME}${EXTRACT_SUFX}" ] ; then \ - ${MKDIR} ${WRKDIR} ; cd ${WRKDIR} ; ${RM} -R ${WRKDIR}/${DISTNAME} ; \ - ${ECHO_MSG} "=> Checking out CalendarServer from svn.calendarserver.org/..."; \ - ${SVN_CMD1} ${SVN_REPOSITORY_URL}/${SVN_TAG1} > /dev/null ; \ - ${ECHO_MSG} "=> Creating tar archive ${DISTDIR}/${DISTNAME}${EXTRACT_SUFX}"; \ - cd ${WRKDIR} ; tar -czf ${DISTDIR}/${DISTNAME}${EXTRACT_SUFX} ${DISTNAME} ; \ - ${RM} -R ${WRKDIR}/${DISTNAME} ; \ - else \ - ${ECHO_MSG} "===> ${DISTDIR}/${DISTNAME}${EXTRACT_SUFX} found." ; \ - fi - post-patch: - @${REINPLACE_CMD} -e 's|"{}.a1+unknown".format(base_version)|"8.0"|' ${WRKSRC}/setup.py + @${REINPLACE_CMD} -e 's|"{}a1+unknown".format(base_version)|"9.0"|' ${WRKSRC}/setup.py @${REINPLACE_CMD} -e 's|"/etc/caldavd/caldavd.plist"|"${ETCDIR}/caldavd.plist"|g' ${WRKSRC}/twistedcaldav/stdconfig.py @${REINPLACE_CMD} -e 's|/etc/caldavd|${ETCDIR}|g' ${WRKSRC}/conf/caldavd.plist + @${REINPLACE_CMD} -e 's|daemon|caldavd|g' ${WRKSRC}/conf/caldavd.plist @${REINPLACE_CMD} -e 's|/var/run|/var/run/caldavd|g' ${WRKSRC}/conf/caldavd.plist post-install: ${MKDIR} ${STAGEDIR}${DBDIR}/Data/Documents ${MKDIR} ${STAGEDIR}${DBDIR}/Documents ${MKDIR} ${STAGEDIR}${ETCDIR}/auth ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} (cd ${WRKSRC}/conf && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}) - (cd ${WRKSRC}/doc && \ - for i in `ls |${GREP} -v '.8'`; do \ - ${MKDIR} ${STAGEDIR}${DOCSDIR}/$${i} && \ - ${INSTALL_MAN} ${WRKSRC}/doc/$${i}/* \ - ${STAGEDIR}${DOCSDIR}/$${i}; \ - done) + ${MKDIR} ${STAGEDIR}${DOCSDIR} + (cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) + (cd ${STAGEDIR}${DOCSDIR} && ${RM} *.8) + ##(cd ${WRKSRC}/doc && \ + ## for i in `ls |${GREP} -v '.8'`; do \ + ## ${MKDIR} ${STAGEDIR}${DOCSDIR}/$${i} && \ + ## ${INSTALL_MAN} ${WRKSRC}/doc/$${i}/* \ + ## ${STAGEDIR}${DOCSDIR}/$${i}; \ + ## done) ${CP} -p ${WRKSRC}/txdav/common/datastore/sql_schema/current.sql \ ${STAGEDIR}${DOCSDIR} ${INSTALL_MAN} ${WRKSRC}/doc/*.8 ${STAGEDIR}${PREFIX}/man/man8 ${MKDIR} ${STAGEDIR}${LOGDIR} ${MKDIR} ${STAGEDIR}${RUNDIR} .include Index: head/www/calendarserver/distinfo =================================================================== --- head/www/calendarserver/distinfo (revision 428899) +++ head/www/calendarserver/distinfo (revision 428900) @@ -1,2 +1,3 @@ -SHA256 (CalendarServer-8.0.tar.gz) = 284e4f52cd83f2db3c9d8ce789e617399bf186a3933f5b4f2f4cc937fca3d5a5 -SIZE (CalendarServer-8.0.tar.gz) = 4571878 +TIMESTAMP = 1478804474 +SHA256 (CalendarServer-9.0.tar.gz) = 557f0497d9b112040ebb3d40556ae2e1a6d6391069a928926ac3c0abea45d836 +SIZE (CalendarServer-9.0.tar.gz) = 4836315 Index: head/www/calendarserver/files/patch-twistedcaldav_____init____.py =================================================================== --- head/www/calendarserver/files/patch-twistedcaldav_____init____.py (revision 428899) +++ head/www/calendarserver/files/patch-twistedcaldav_____init____.py (nonexistent) @@ -1,13 +0,0 @@ ---- twistedcaldav/__init__.py.orig 2016-01-07 15:18:44 UTC -+++ twistedcaldav/__init__.py -@@ -33,6 +33,10 @@ File.contentTypes = loadMimeTypes(("/etc - # Register additional WebDAV XML elements - # - -+# Make sure the default config is loaded and updated early on to avoid race conditions during startup. (upstream: r15635) -+from twistedcaldav.config import config -+config.update() -+ - import twistedcaldav.caldavxml - import twistedcaldav.carddavxml - import twistedcaldav.mkcolxml Property changes on: head/www/calendarserver/files/patch-twistedcaldav_____init____.py ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/calendarserver/files/patch-txdav_common_datastore_sql__schema_current.sql =================================================================== --- head/www/calendarserver/files/patch-txdav_common_datastore_sql__schema_current.sql (revision 428899) +++ head/www/calendarserver/files/patch-txdav_common_datastore_sql__schema_current.sql (nonexistent) @@ -1,11 +0,0 @@ ---- txdav/common/datastore/sql_schema/current.sql.orig 2016-01-07 15:18:44 UTC -+++ txdav/common/datastore/sql_schema/current.sql -@@ -90,7 +90,7 @@ insert into HOME_STATUS values (4, 'disa - -------------- - - create table CALENDAR ( -- RESOURCE_ID integer primary key default nextval('RESOURCE_ID_SEQ') -- implicit index -+ RESOURCE_ID integer primary key default nextval('RESOURCE_ID_SEQ') - ); - - Property changes on: head/www/calendarserver/files/patch-txdav_common_datastore_sql__schema_current.sql ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/calendarserver/files/patch-txdav_base_propertystore_xattr.py =================================================================== --- head/www/calendarserver/files/patch-txdav_base_propertystore_xattr.py (revision 428899) +++ head/www/calendarserver/files/patch-txdav_base_propertystore_xattr.py (nonexistent) @@ -1,20 +0,0 @@ ---- txdav/base/propertystore/xattr.py.orig 2016-01-07 15:18:44 UTC -+++ txdav/base/propertystore/xattr.py -@@ -47,10 +47,14 @@ from txdav.idav import PropertyStoreErro - # expose. Its value is 93. - # - --if sys.platform in ("darwin", "freebsd8", "freebsd9"): -- _ERRNO_NO_ATTR = getattr(errno, "ENOATTR", 93) --else: -+_ERRNO_NO_ATTR = 0 -+try: - _ERRNO_NO_ATTR = errno.ENODATA -+except AttributeError: -+ if sys.platform[:6] == 'darwin' or sys.platform[:7] == 'freebsd': -+ _ERRNO_NO_ATTR = getattr(errno, "ENOATTR", 93) -+ else: -+ raise - - - Property changes on: head/www/calendarserver/files/patch-txdav_base_propertystore_xattr.py ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/calendarserver/files/patch-setup.py =================================================================== --- head/www/calendarserver/files/patch-setup.py (revision 428899) +++ head/www/calendarserver/files/patch-setup.py (revision 428900) @@ -1,12 +1,12 @@ ---- setup.py.orig 2016-01-07 15:18:44 UTC +--- setup.py.orig 2016-08-23 16:28:28 UTC +++ setup.py -@@ -429,9 +429,6 @@ def doSetup(): +@@ -419,9 +419,6 @@ def doSetup(): scripts=[ "bin/caldavd", ], - data_files=[ - ("caldavd", ["conf/caldavd.plist"]), - ], ext_modules=extensions, py_modules=[], setup_requires=setup_requirements, Index: head/www/calendarserver/files/patch-twistedcaldav_stdconfig.py =================================================================== --- head/www/calendarserver/files/patch-twistedcaldav_stdconfig.py (revision 428899) +++ head/www/calendarserver/files/patch-twistedcaldav_stdconfig.py (revision 428900) @@ -1,20 +1,11 @@ ---- twistedcaldav/stdconfig.py.orig 2016-03-01 19:59:08 UTC +--- twistedcaldav/stdconfig.py.orig 2016-08-23 16:28:28 UTC +++ twistedcaldav/stdconfig.py @@ -53,7 +53,7 @@ log = Logger() if platform.isMacOSX(): DEFAULT_CONFIG_FILE = "/Applications/Server.app/Contents/ServerRoot/private/etc/caldavd/caldavd-apple.plist" else: - DEFAULT_CONFIG_FILE = "/etc/caldavd/caldavd.plist" + DEFAULT_CONFIG_FILE = "/usr/local/etc/caldavd/caldavd.plist" DEFAULT_SERVICE_PARAMS = { "xml": { -@@ -1827,6 +1827,8 @@ config.setProvider(PListConfigProvider(D - config.addPreUpdateHooks(PRE_UPDATE_HOOKS) - config.addPostUpdateHooks(POST_UPDATE_HOOKS) - -+# Make sure the default config is loaded and updated early on to avoid race conditions during startup. (upstream: r15635) -+config.update() - - def _preserveConfig(configDict): - """ Index: head/www/calendarserver/files/patch-txdav_base_datastore_dbapiclient.py =================================================================== --- head/www/calendarserver/files/patch-txdav_base_datastore_dbapiclient.py (revision 428899) +++ head/www/calendarserver/files/patch-txdav_base_datastore_dbapiclient.py (revision 428900) @@ -1,14 +1,19 @@ ---- txdav/base/datastore/dbapiclient.py.orig 2016-03-01 19:40:29 UTC +--- txdav/base/datastore/dbapiclient.py.orig 2016-12-15 11:56:26 UTC +++ txdav/base/datastore/dbapiclient.py -@@ -427,7 +427,10 @@ def pg8000Preflight(connection, **kwargs +@@ -24,6 +24,7 @@ from twext.python.filepath import Cachin + from txdav.common.icommondatastore import InternalDataStoreError + + import pg8000 as postgres ++import six + + try: + import os +@@ -430,7 +431,7 @@ def pg8000Preflight(connection, **kwargs return v.encode("utf-8") if isinstance(v, unicode) else str(v) connection.realConnection.py_types[str] = (705, postgres.core.FC_TEXT, my_text_out) - connection.realConnection.py_types[postgres.six.text_type] = (705, postgres.core.FC_TEXT, my_text_out) -+ -+ # http://trac.calendarserver.org/ticket/940 -+ from six import text_type -+ connection.realConnection.py_types[text_type] = (705, postgres.core.FC_TEXT, my_text_out) ++ connection.realConnection.py_types[six.text_type] = (705, postgres.core.FC_TEXT, my_text_out) def my_text_recv(data, offset, length): return str(data[offset: offset + length]) Index: head/www/calendarserver/files/pkg-message.in =================================================================== --- head/www/calendarserver/files/pkg-message.in (revision 428899) +++ head/www/calendarserver/files/pkg-message.in (revision 428900) @@ -1,102 +1,115 @@ This is the core code base for the Calendar and Contacts Server, which is a CalDAV, CardDAV, WebDAV, and HTTP server. For general information about the server, see: http://www.calendarserver.org/ plus online DOCs, including RFCs in %%PREFIX%%/share/doc/calendarserver . Getting Started --------------- -Before you can run the server, you need to set up a configuration file -(etc/caldavd/caldavd.plist). +Before you can run the server, you need to set up a database and a +configuration file (etc/caldavd/caldavd.plist). + +If you installed the documentation (default), you can create the database, +assuming a running PostgreSQL server, so: + CREATE DATABASE caldav + OWNER = caldav + ENCODING = 'UTF8' + LC_COLLATE = 'C' + LC_CTYPE = 'C'; +and populate it with the caldav tables like so: + psql -h my_server -p my_port \ + -f /usr/local/share/doc/calendarserver/current.sql \ + -U caldav caldav + If you installed the examples configuration, you could start with a test configuration by copying and editing from %%PREFIX%%/share/examples/calendarserver/ to %%PREFIX%%/etc/caldavd/ the files caldavd*.plist auth/accounts.dtd auth/accounts.xml auth/augments.dtd auth/augments-test.xml auth/proxies.dtd auth/proxies-test.xml 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 and Contacts Server with information about these principals. Some of the directory services which are supported by the Calendar and Contacts Server include: - XMLDirectoryService: this service is configurable via an XML file that contains principal information. The file auth/accounts.xml provides an example principals configuration. - OpenDirectoryService: this service uses Apple's OpenDirectory client (which in turn uses LDAP, Active Directory, etc.) to obtain principal information. The above configuration uses XMLDirectoryService by default. This is a generally useful configuration for development and testing. 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 value of 'user name' in the client configuration is the value of the attribute . Often an e-mail address is usefull here. In this case there is no need to define a server path on the client. Updates from earlier versions may require a DB schema update, which is done automatically on server start up, if FailIfUpgradeNeeded is set to . Upgrading --------- Upgrading from the previous version of this port (5.1) requires adjustments to the configuration: 1. Stop the server, install the new version. 2. accounts.xml has a new layout - see %%PREFIX%%/share/examples/calendarserver/auth/accounts.xml In that file is optional. If present, it must be a valid UUID like FCB7BFFB-624D-4201-BA65-E133E439A661 If you have invalid UUID values in your guid attributes, the fastest way to upgrade would be to delete them. Any change on requires adjustment of the client configuration, as the old server path principals/__uids__/something changes. Creating new uuids can be done with python like this: # python Python 2.7.11 (default, Jun 5 2016, 06:09:57) [GCC 4.2.1 Compatible FreeBSD Clang 3.4.1 . . . >>> import uuid >>> str(uuid.uuid4()).upper() '22F5BC05-8EDE-421E-99DD-CEDE1B814635' >>> str(uuid.uuid4()).upper() 'A7211FE0-1D8F-474B-A5AB-262668EECE6C' 3. Fix caldavd.plist Adjust AdminPrincipals if you changed the admin uid above. DatabaseConnection has a new format. For these and all other changes review your plist, using %%PREFIX%%/share/examples/calendarserver/caldavd.plist 4. Start the server and follow server log. You should see messages about schema and data migration like Starting schema upgrade from version 24 to 60. Schema upgraded from version 24 to 60. These schould complete without errors. Index: head/www/calendarserver/pkg-plist =================================================================== --- head/www/calendarserver/pkg-plist (revision 428899) +++ head/www/calendarserver/pkg-plist (revision 428900) @@ -1,139 +1,20 @@ man/man8/caldavd.8.gz man/man8/calendarserver_command_gateway.8.gz man/man8/calendarserver_config.8.gz man/man8/calendarserver_export.8.gz man/man8/calendarserver_manage_principals.8.gz man/man8/calendarserver_manage_push.8.gz man/man8/calendarserver_manage_timezones.8.gz man/man8/calendarserver_migrate_resources.8.gz man/man8/calendarserver_monitor_notifications.8.gz man/man8/calendarserver_purge_attachments.8.gz man/man8/calendarserver_purge_events.8.gz man/man8/calendarserver_purge_principals.8.gz man/man8/calendarserver_shell.8.gz -%%PORTDOCS%%%%DOCSDIR%%/Admin/DirectoryService-Apache.rst -%%PORTDOCS%%%%DOCSDIR%%/Admin/DirectoryService-OpenDirectory.rst -%%PORTDOCS%%%%DOCSDIR%%/Admin/DirectoryService-XML.rst -%%PORTDOCS%%%%DOCSDIR%%/Admin/DirectoryServices.rst -%%PORTDOCS%%%%DOCSDIR%%/Admin/ExtendedLogItems.rst -%%PORTDOCS%%%%DOCSDIR%%/Admin/Guide.rst -%%PORTDOCS%%%%DOCSDIR%%/Admin/LoadSimulation.rst -%%PORTDOCS%%%%DOCSDIR%%/Admin/MultiServerDeployment.rst -%%PORTDOCS%%%%DOCSDIR%%/Admin/iSchedule.txt -%%PORTDOCS%%%%DOCSDIR%%/Client-Server/Principal Bootstrap.graffle.zip -%%PORTDOCS%%%%DOCSDIR%%/Client-Server/Principal Bootstrap.pdf -%%PORTDOCS%%%%DOCSDIR%%/Client-Server/calendar-client.rst -%%PORTDOCS%%%%DOCSDIR%%/Developer/Calendar Store API.graffle -%%PORTDOCS%%%%DOCSDIR%%/Developer/Calendar Store Schema.graffle -%%PORTDOCS%%%%DOCSDIR%%/Developer/CrossPodDesign.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-ctag.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-ctag.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-notifications.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-notifications.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-privatecomments.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-privatecomments.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-privateevents.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-privateevents.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-proxy.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-proxy.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-pubsubdiscovery.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-pubsubdiscovery.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-recursplit.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-recursplit.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-schedulingchanges.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-schedulingchanges.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-sharing.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/caldav-sharing.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/calendarserver-bulk-change.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/calendarserver-bulk-change.xml -%%PORTDOCS%%%%DOCSDIR%%/Extensions/icalendar-maskuids.txt -%%PORTDOCS%%%%DOCSDIR%%/Extensions/icalendar-maskuids.xml -%%PORTDOCS%%%%DOCSDIR%%/Notes/attendee-import.txt -%%PORTDOCS%%%%DOCSDIR%%/Notes/index.txt -%%PORTDOCS%%%%DOCSDIR%%/Notes/x-items.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/draft-daboo-caldav-extensions.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/draft-daboo-calendar-availability.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/draft-daboo-carddav-directory-gateway.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/draft-desruisseaux-ischedule.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc2616-HTTP.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc2617-HTTP Auth.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc3253-DeltaV.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc3283-Calendaring.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc3744-WebDAV ACL.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc4331-WebDAV Quota.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc4559-SPNEGO.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc4791-CalDAV.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc4918-WebDAV.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc5397-Current Principal.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc5545-iCalendar.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc5546-iTIP.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc5689-Extended MKCOL.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc5785-well-known-uris.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc5842-BIND.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc5995-POST addmember.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc6047-iMIP.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc6321-xCal.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc6350-vCard4.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc6351-xCard.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc6352-CardDAV.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc6578-WebDAV Sync.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/rfc6638-CalDAV-Scheduling.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/RFC6764-srv-CalDAV.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/RFC6868-Parameter Value Encoding.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/RFC7095-jCard.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/RFC7265-jcal.txt -%%PORTDOCS%%%%DOCSDIR%%/RFC/RFC7529-RSCALE.txt -%%PORTDOCS%%%%DOCSDIR%%/current.sql -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/accounts-test-pod.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/accounts-test-s2s.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/accounts-test.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/accounts.dtd -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/accounts.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/augments-default.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/augments-test.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/augments-test-pod.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/augments-test-s2s.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/augments.dtd -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/generate_test_accounts.py -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/proxies.dtd -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/proxies-test-pod.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/proxies-test-s2s.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/proxies-test.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/resources-test-pod.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/resources-test-s2s.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/auth/resources-test.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/caldavd-apple.plist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/caldavd-stdconfig.plist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/caldavd-test.plist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/caldavd-test-podA.plist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/caldavd-test-podB.plist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/caldavd-test-s2s.plist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/caldavd.plist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dkim-test-s2s/other_keys/example.com#ischedule -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dkim-test-s2s/priv.pem -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dkim-test-s2s/pub.pem -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dkim-test/other_keys/example.org#ischedule2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dkim-test/priv.pem -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dkim-test/pub.pem -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/localservers-test.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/localservers.dtd -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/localservers.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mime.types -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/remoteservers-test.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/remoteservers-test-s2s.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/remoteservers.dtd -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/remoteservers.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/resources.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/resources/caldavd-resources.plist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/resources/locations-resources-orig.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/resources/locations-resources.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/resources/users-groups.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/test/accounts.xml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/test-db.zones @dir %%ETCDIR%%/auth -@dir(%%USER%%,%%GROUP%%,755) %%RUNDIR%% @dir %%LOGDIR%% @dir(%%USER%%,%%GROUP%%,755) %%DBDIR%% -@dir(%%USER%%,%%GROUP%%,755) %%DBDIR%%/Documents @dir(%%USER%%,%%GROUP%%,755) %%DBDIR%%/Data @dir(%%USER%%,%%GROUP%%,755) %%DBDIR%%/Data/Documents +@dir(%%USER%%,%%GROUP%%,755) %%DBDIR%%/Documents +@dir(%%USER%%,%%GROUP%%,755) %%RUNDIR%%