summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoritz Kaspar Rudert (mortzu)2015-05-21 14:37:46 +0200
committerMoritz Kaspar Rudert (mortzu)2015-05-21 14:37:46 +0200
commit4a377e98ea254e603ac289f484bbee1c28431033 (patch)
tree2b00ab1e758248d200a0d6f497388d31bfb5ef2a
downloadaur-4a377e98ea254e603ac289f484bbee1c28431033.tar.gz
initial commit
-rw-r--r--.SRCINFO30
-rw-r--r--PKGBUILD35
-rw-r--r--caldavd.plist482
-rw-r--r--calendarserver.install31
-rw-r--r--calendarserver.service11
5 files changed, 589 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..d44c19d45d65
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,30 @@
+pkgbase = calendarserver
+ pkgdesc = standalone CalDAV server
+ pkgver = 6.0
+ pkgrel = 1
+ url = http://calendarserver.org/
+ install = calendarserver.install
+ arch = i686
+ arch = x86_64
+ license = Apache
+ makedepends = subversion
+ makedepends = curl
+ depends = glibc
+ depends = python2-twisted
+ depends = python2-zope-interface
+ depends = python2-vobject
+ depends = python2-pyopenssl
+ depends = python2-pyflakes
+ depends = krb5
+ depends = python2-memcached
+ depends = memcached
+ depends = postgresql
+ backup = etc/caldavd/caldavd-dev.plist
+ backup = etc/caldavd/auth/accounts.xml
+ source = calendarserver::svn+http://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags/release/CalendarServer-6.0
+ source = caldavd.plist
+ md5sums = SKIP
+ md5sums = 6760eb45c54a5c40575fac82a02c8b00
+
+pkgname = calendarserver
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..cc267cd045a4
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,35 @@
+pkgname=calendarserver
+pkgver=6.0
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('Apache')
+pkgdesc="standalone CalDAV server"
+depends=('glibc' 'python2-twisted' 'python2-zope-interface' 'python2-vobject' 'python2-pyopenssl' 'python2-pyflakes' 'krb5' 'python2-memcached' 'memcached' 'postgresql')
+makedepends=('subversion' 'curl')
+url='http://calendarserver.org/'
+install=calendarserver.install
+backup=(etc/caldavd/caldavd-dev.plist etc/caldavd/auth/accounts.xml)
+source=($pkgname::svn+http://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags/release/CalendarServer-$pkgver
+ caldavd.plist)
+md5sums=('SKIP'
+ '6760eb45c54a5c40575fac82a02c8b00')
+
+build() {
+ cd "$pkgname"
+
+ ./bin/run -s
+}
+
+package() {
+ mkdir -p "$pkgdir/opt/caldavd" "$pkgdir/etc" "$pkgdir/var/"{spool/caldavd,run/caldavd,log/caldavd}
+ svn export "$srcdir/$pkgname" "$pkgdir/opt/caldavd/CalendarServer"
+
+ mv "$pkgdir/opt/caldavd/CalendarServer/conf" "$pkgdir/etc/caldavd"
+ ln -s ../../../etc/caldavd "$pkgdir/opt/caldavd/CalendarServer/conf"
+ cp "$srcdir/caldavd.plist" "$pkgdir/etc/caldavd/caldavd-dev.plist"
+ rm -f $pkgdir/etc/caldavd/caldavd.plist
+ ln -s caldavd-dev.plist $pkgdir/etc/caldavd/caldavd.plist
+ ln -s ../../../var/log/caldavd $pkgdir/opt/caldavd/CalendarServer/logs
+ ln -s ../../../var/spool/caldavd $pkgdir/opt/caldavd/CalendarServer/root
+ ln -s ../../../var/run/caldavd $pkgdir/opt/caldavd/CalendarServer/data
+}
diff --git a/caldavd.plist b/caldavd.plist
new file mode 100644
index 000000000000..ae742df0b1e8
--- /dev/null
+++ b/caldavd.plist
@@ -0,0 +1,482 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+
+ <!--
+ Public network address information
+
+ This is the server's public network address, which is provided to
+ clients in URLs and the like. It may or may not be the network
+ address that the server is listening to directly, though it is by
+ default. For example, it may be the address of a load balancer or
+ proxy which forwards connections to the server.
+ -->
+
+ <!-- Network host name [empty = system host name] -->
+ <key>ServerHostName</key>
+ <string></string> <!-- The hostname clients use when connecting -->
+
+ <!-- HTTP port [0 = disable HTTP] -->
+ <key>HTTPPort</key>
+ <integer>8008</integer>
+
+ <!-- SSL port [0 = disable HTTPS] -->
+ <!-- (Must also configure SSLCertificate and SSLPrivateKey below) -->
+ <!--
+ <key>SSLPort</key>
+ <integer>443</integer>
+ -->
+
+ <!-- Redirect non-SSL ports to an SSL port (if configured for SSL) -->
+ <key>RedirectHTTPToHTTPS</key>
+ <false/>
+
+
+ <!--
+ Network address configuration information
+
+ This configures the actual network address that the server binds to.
+ -->
+
+ <!-- List of IP addresses to bind to [empty = all] -->
+ <key>BindAddresses</key>
+ <array>
+ </array>
+
+ <!-- List of port numbers to bind to for HTTP [empty = same as "Port"] -->
+ <key>BindHTTPPorts</key>
+ <array>
+ </array>
+
+ <!-- List of port numbers to bind to for SSL [empty = same as "SSLPort"] -->
+ <key>BindSSLPorts</key>
+ <array>
+ </array>
+
+
+ <!--
+ Data Store
+ -->
+
+ <!-- Data root -->
+ <key>DataRoot</key>
+ <string>/var/run/caldavd/</string>
+
+ <!-- Document root -->
+ <key>DocumentRoot</key>
+ <string>/var/spool/caldavd/</string>
+
+ <!-- Child aliases -->
+ <key>Aliases</key>
+ <dict>
+ <!--
+ <key>foo</key>
+ <dict>
+ <key>path</key>
+ <string>/path/to/foo</string>
+ </dict>
+ -->
+ </dict>
+
+ <!-- User quota (in bytes) -->
+ <key>UserQuota</key>
+ <integer>104857600</integer><!-- 100Mb -->
+
+ <!-- Attachment size limit (in bytes) -->
+ <key>MaximumAttachmentSize</key>
+ <integer>1048576</integer><!-- 1Mb -->
+
+ <!-- Maximum number of unique attendees per entire event -->
+ <!-- 0 for no limit -->
+ <key>MaxAttendeesPerInstance</key>
+ <integer>100</integer>
+
+ <!-- Maximum number of instances allowed for a single RRULE -->
+ <!-- 0 for no limit -->
+ <key>MaxInstancesForRRULE</key>
+ <integer>400</integer>
+
+
+ <!--
+ Directory service
+
+ A directory service provides information about principals (eg.
+ users, groups, locations and resources) to the server.
+
+ A variety of directory services are available for use.
+ -->
+
+ <!-- XML File Directory Service -->
+ <key>DirectoryService</key>
+ <dict>
+ <key>type</key>
+ <string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
+
+ <key>params</key>
+ <dict>
+ <key>xmlFile</key>
+ <string>/etc/caldavd/auth/accounts.xml</string>
+ </dict>
+ </dict>
+
+ <!-- Open Directory Service (Mac OS X) -->
+ <!--
+ <key>DirectoryService</key>
+ <dict>
+ <key>type</key>
+ <string>twistedcaldav.directory.appleopendirectory.OpenDirectoryService</string>
+
+ <key>params</key>
+ <dict>
+ <key>node</key>
+ <string>/Search</string>
+ <key>restrictEnabledRecords</key>
+ <false/>
+ <key>restrictToGroup</key>
+ <string></string>
+ <key>cacheTimeout</key>
+ <integer>30</integer>
+ </dict>
+ </dict>
+ -->
+
+ <!--
+ Special principals
+
+ These principals are granted special access and/or perform
+ special roles on the server.
+ -->
+
+ <!-- Principals with "DAV:all" access (relative URLs) -->
+ <key>AdminPrincipals</key>
+ <array>
+ <!-- <string>/principals/__uids__/AEB68DD7-D2B8-4D4D-A574-2A4533DF36A4/</string> -->
+ </array>
+
+ <!-- Principals with "DAV:read" access (relative URLs) -->
+ <key>ReadPrincipals</key>
+ <array>
+ <!-- <string>/principals/__uids__/983C8238-FB6B-4D92-9242-89C0A39E5F81/</string> -->
+ </array>
+
+ <!-- Principals that can pose as other principals -->
+ <key>SudoersFile</key>
+ <string>/etc/caldavd/sudoers.plist</string>
+
+ <!-- Create "proxy access" principals -->
+ <key>EnableProxyPrincipals</key>
+ <true/>
+
+
+ <!--
+ Permissions
+ -->
+
+ <!-- Anonymous read access for root resource -->
+ <key>EnableAnonymousReadRoot</key>
+ <true/>
+
+ <!-- Anonymous read access for resource hierarchy -->
+ <key>EnableAnonymousReadNav</key>
+ <false/>
+
+ <!-- Enables directory listings for principals -->
+ <key>EnablePrincipalListings</key>
+ <false/>
+
+ <!-- Render calendar collections as a monolithic iCalendar object -->
+ <key>EnableMonolithicCalendars</key>
+ <true/>
+
+
+ <!--
+ Authentication
+ -->
+
+ <key>Authentication</key>
+ <dict>
+
+ <!-- Clear text; best avoided -->
+ <key>Basic</key>
+ <dict>
+ <key>Enabled</key>
+ <false/>
+ </dict>
+
+ <!-- Digest challenge/response -->
+ <key>Digest</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>Algorithm</key>
+ <string>md5</string>
+ <key>Qop</key>
+ <string></string>
+ </dict>
+
+ <!-- Kerberos/SPNEGO -->
+ <key>Kerberos</key>
+ <dict>
+ <key>Disabled</key>
+ <true/>
+ <key>ServicePrincipal</key>
+ <string></string>
+ </dict>
+
+ </dict>
+
+
+ <!--
+ Logging
+ -->
+
+ <!-- Apache-style access log -->
+ <key>AccessLogFile</key>
+ <string>/var/log/caldavd/access.log</string>
+ <key>RotateAccessLog</key>
+ <true/>
+
+ <!-- Server activity log -->
+ <key>ErrorLogFile</key>
+ <string>/var/log/caldavd/error.log</string>
+
+ <!-- Log levels -->
+ <key>DefaultLogLevel</key>
+ <string>warn</string> <!-- debug, info, warn, error -->
+
+ <!-- Global server stats -->
+ <key>GlobalStatsSocket</key>
+ <string>/var/run/caldavd/caldavd-stats.sock</string>
+
+ <!-- Server statistics file -->
+ <key>ServerStatsFile</key>
+ <string>/var/run/caldavd/caldavd/stats.plist</string>
+
+ <!-- Server process ID file -->
+ <key>PIDFile</key>
+ <string>/var/run/caldavd/caldavd.pid</string>
+
+
+ <!--
+ SSL/TLS
+ -->
+
+ <!-- Public key -->
+ <key>SSLCertificate</key>
+ <string>/etc/caldavd/cal.pem</string>
+
+ <!-- Private key -->
+ <key>SSLPrivateKey</key>
+ <string>/etc/caldavd/cal.key</string>
+
+
+ <!--
+ Process management
+ -->
+
+ <key>UserName</key>
+ <string>caldavd</string>
+
+ <key>GroupName</key>
+ <string>caldavd</string>
+
+ <key>ProcessType</key>
+ <string>Combined</string>
+
+ <key>MultiProcess</key>
+ <dict>
+ <key>ProcessCount</key>
+ <integer>0</integer> <!-- 0 = larger of: 4 or (2 * CPU count) -->
+ </dict>
+
+
+ <!--
+ Notifications
+ -->
+
+ <key>Notifications</key>
+ <dict>
+ <!-- Time spent coalescing notifications before delivery -->
+ <key>CoalesceSeconds</key>
+ <integer>3</integer>
+
+ <key>Services</key>
+ <dict>
+ <key>XMPPNotifier</key>
+ <dict>
+ <!-- XMPP notification service -->
+ <key>Service</key>
+ <string>twistedcaldav.notify.XMPPNotifierService</string>
+ <key>Enabled</key>
+ <false/>
+
+ <!-- XMPP host and port to contact -->
+ <key>Host</key>
+ <string>xmpp.host.name</string>
+ <key>Port</key>
+ <integer>5222</integer>
+
+ <!-- Jabber ID and password for the server -->
+ <key>JID</key>
+ <string>jid@xmpp.host.name/resource</string>
+ <key>Password</key>
+ <string>password_goes_here</string>
+
+ <!-- PubSub service address -->
+ <key>ServiceAddress</key>
+ <string>pubsub.xmpp.host.name</string>
+ </dict>
+ </dict>
+ </dict>
+
+
+ <!--
+ Server-to-server protocol
+ -->
+
+ <key>Scheduling</key>
+ <dict>
+
+ <!-- CalDAV protocol options -->
+ <key>CalDAV</key>
+ <dict>
+ <key>EmailDomain</key>
+ <string></string>
+ <key>HTTPDomain</key>
+ <string></string>
+ <key>AddressPatterns</key>
+ <array>
+ </array>
+ </dict>
+
+ <!-- iSchedule protocol options -->
+ <key>iSchedule</key>
+ <dict>
+ <key>Enabled</key>
+ <false/>
+ <key>AddressPatterns</key>
+ <array>
+ </array>
+ <key>Servers</key>
+ <string>/etc/caldavd/servertoserver.xml</string>
+ </dict>
+
+ <!-- iMIP protocol options -->
+ <key>iMIP</key>
+ <dict>
+ <key>Enabled</key>
+ <false/>
+ <key>MailGatewayServer</key>
+ <string>localhost</string>
+ <key>MailGatewayPort</key>
+ <integer>62310</integer>
+ <key>Sending</key>
+ <dict>
+ <key>Server</key>
+ <string></string>
+ <key>Port</key>
+ <integer>587</integer>
+ <key>UseSSL</key>
+ <true/>
+ <key>Username</key>
+ <string></string>
+ <key>Password</key>
+ <string></string>
+ <key>Address</key>
+ <string></string> <!-- Address email will be sent from -->
+ </dict>
+ <key>Receiving</key>
+ <dict>
+ <key>Server</key>
+ <string></string>
+ <key>Port</key>
+ <integer>995</integer>
+ <key>Type</key>
+ <string></string> <!-- Either "pop" or "imap" -->
+ <key>UseSSL</key>
+ <true/>
+ <key>Username</key>
+ <string></string>
+ <key>Password</key>
+ <string></string>
+ <key>PollingSeconds</key>
+ <integer>30</integer>
+ </dict>
+ <key>AddressPatterns</key>
+ <array>
+ <string>mailto:.*</string>
+ </array>
+ </dict>
+
+ </dict>
+
+
+ <!--
+ Free-busy URL protocol
+ -->
+
+ <key>FreeBusyURL</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>TimePeriod</key>
+ <integer>14</integer>
+ <key>AnonymousAccess</key>
+ <false/>
+ </dict>
+
+
+ <!--
+ Non-standard CalDAV extensions
+ -->
+
+ <!-- Private Events -->
+ <key>EnablePrivateEvents</key>
+ <true/>
+
+
+ <!--
+ Miscellaneous items
+ -->
+
+ <!-- Web-based administration -->
+ <key>EnableWebAdmin</key>
+ <true/>
+
+ <key>Twisted</key>
+ <dict>
+ <key>twistd</key>
+ <string>/opt/caldavd/Twisted/bin/twistd</string>
+ </dict>
+
+ <key>PythonDirector</key>
+ <dict>
+ <key>pydir</key>
+ <string>/opt/caldavd/pydirector-1.0.0/pydir.py</string>
+ <key>ControlSocket</key>
+ <string>/var/run/caldavd/caldavd-pydir.sock</string>
+ </dict>
+
+ <key>ControlSocket</key>
+ <string>/var/run/caldavd/caldavd.socket</string>
+
+ </dict>
+</plist>
diff --git a/calendarserver.install b/calendarserver.install
new file mode 100644
index 000000000000..3931af7f61d5
--- /dev/null
+++ b/calendarserver.install
@@ -0,0 +1,31 @@
+post_install () {
+ echo -n "adding calendarserver system group... "
+ groupadd caldavd && echo -n "done."
+ echo
+
+ echo -n "adding calendarserver system user... "
+ useradd -c "calendarserver daemon" -d /var/spool/caldavd -g caldavd -s /bin/false caldavd && echo -n "done."
+ echo
+
+ passwd -l caldavd &>/dev/null
+
+ for dir in spool run log; do
+ mkdir -p /var/$dir/caldavd
+ chown caldavd:caldavd /var/$dir/caldavd
+ done
+
+ echo ">> You have to remount the filesystem which contains /var with user_xattr"
+ echo ">> Place 'calendarserver' in DAEMONS= in /etc/rc.conf to enable calendarserver on system boot."
+}
+
+post_remove() {
+ echo -n -e "\nremoving caldavd system user... "
+ userdel caldavd && echo "done."
+
+ echo "Not removing tmp and log directories"
+}
+
+op=$1
+shift
+$op $*
+ \ No newline at end of file
diff --git a/calendarserver.service b/calendarserver.service
new file mode 100644
index 000000000000..8e4436a21ca2
--- /dev/null
+++ b/calendarserver.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=standalone CalDAV server
+
+[Service]
+ExecStart=/usr/bin/syslogd --no-forward
+ExecReload=/bin/kill -HUP $MAINPID
+StandardOutput=null
+
+[Install]
+WantedBy=multi-user.target
+Alias=syslog.service