<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/9ee3dd323c9f98e7dba7cf3e26dea9833e52c01c">https://github.com/macports/macports-ports/commit/9ee3dd323c9f98e7dba7cf3e26dea9833e52c01c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9ee3dd323c9f98e7dba7cf3e26dea9833e52c01c
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Mon Apr 26 10:55:13 2021 -0400
<span style='display:block; white-space:pre;color:#404040;'> calendar-contacts-server: Portfile whitespace fixes
</span>---
net/calendar-contacts-server/Portfile | 193 +++++++++++++++++-----------------
1 file changed, 97 insertions(+), 96 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/calendar-contacts-server/Portfile b/net/calendar-contacts-server/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 51369a45327..301b12f17ef 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/calendar-contacts-server/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/calendar-contacts-server/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,33 +1,35 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup active_variants 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup active_variants 1.1
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup apple ccs-calendarserver 13c706b985fb728b9aab42dc0fef85aae21921c3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup apple ccs-calendarserver 13c706b985fb728b9aab42dc0fef85aae21921c3
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-name calendar-contacts-server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name calendar-contacts-server
</span> # version from https://github.com/apple/ccs-calendarserver/blob/master/setup.py
# with date of git commit appended
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 9.3.20200212
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-categories net mail
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-supported_archs noarch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers {ieee.org:s.t.smith @essandess} openmaintainer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-license Apache-2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-description Apple Calendar and Contacts Server configuration
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description ${description}. \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ccs-calendarserver is a standards-compliant server implementing\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the CalDAV and CardDAV protocols, including iMIP and APNS. It\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- provides a shared location on the network allowing multiple users\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- to store and edit calendaring and contact information. This port\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- provides a basic, working, easily modifiable configuration,\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- previously used in macOS Server.app, and an nginx reverse proxy\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- to handle modern crypto and isolate the backend server.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage https://www.calendarserver.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 9.3.20200212
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories net mail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {ieee.org:s.t.smith @essandess} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license Apache-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Apple Calendar and Contacts Server configuration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description ccs-calendarserver is a standards-compliant server \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ implementing the CalDAV and CardDAV protocols, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ including iMIP and APNS. It provides a shared \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ location on the network allowing multiple users to \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ store and edit calendaring and contact \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ information. This port provides a basic, working, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ easily modifiable configuration, previously used \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in macOS Server.app, and an nginx reverse proxy to \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ handle modern crypto and isolate the backend server.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://www.calendarserver.org
</span>
checksums rmd160 5fd33bb11370e40d3fb8e6550963ec3587156d24 \
sha256 e08d8d1a911d408dfd2f9716a1a02d77801b0d28401186d868d7ca3af198f4c6 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,29 +44,29 @@ set python2_branch [string index ${python2_version} 0].[string range ${python2_v
</span> set postgresql9_version 96
set postgresql9_branch [string index ${postgresql9_version} 0].[string range ${postgresql9_version} 1 end]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append port:cyrus-sasl2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libffi \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:mail-server \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:memcached \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:nginx \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:openssl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:postgresql${postgresql9_version}-server \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:python${python2_version} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python2_version}-pip \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python2_version}-pyobjc-cocoa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:cyrus-sasl2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libffi \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:mail-server \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:memcached \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:nginx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:openssl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:postgresql${postgresql9_version}-server \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:python${python2_version} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python2_version}-pip \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python2_version}-pyobjc-cocoa
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append port:pip_select \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:postgresql_select
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_run-append port:pip_select \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:postgresql_select
</span>
set calendarserverUser calendarserver
<span style='display:block; white-space:pre;background:#ffe0e0;'>-add_users ${calendarserverUser} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- group=_calendar \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- home=${prefix}/var/${calendarserverUser}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+add_users ${calendarserverUser} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ group=_calendar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ home=${prefix}/var/${calendarserverUser}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set ccsname ${github.project}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set ccsname ${github.project}
</span> set calendarserverdir ${prefix}/var/${calendarserverUser}
set calendarserverpackage \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ${calendarserverdir}/Library/CalendarServer/${ccsname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${calendarserverdir}/Library/CalendarServer/${ccsname}
</span>
# random 4-word-based passphrase
proc correct_horse_battery_staple {} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -91,7 +93,7 @@ post-extract {
</span> ${worksrcpath}/calendarserver/tools/checkdatabaseschema.py
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure no
</span>
pre-build {
# pre-build source copy
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -107,9 +109,9 @@ pre-build {
</span>
# package/install calendarserver binaries
# see https://github.com/apple/ccs-calendarserver/issues/540#issuecomment-519596004
<span style='display:block; white-space:pre;background:#ffe0e0;'>-build.cmd bin/develop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.cmd bin/develop
</span> build.target
<span style='display:block; white-space:pre;background:#ffe0e0;'>-build.env "USE_OPENSSL=1" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.env "USE_OPENSSL=1" \
</span> "PATH=${workpath}/bin:$env(PATH)" \
"CPPFLAGS=${configure.cppflags}" \
"LDFLAGS=${configure.ldflags}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -188,34 +190,33 @@ destroot {
</span>
# Network configuration
# hard-coded examples
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set host host
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set domain example
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set tld com
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set fullhost ${host}.${domain}.${tld}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set domaintld ${domain}.${tld}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set host host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set domain example
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set tld com
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set fullhost ${host}.${domain}.${tld}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set domaintld ${domain}.${tld}
</span> set tls_certificate_name \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ${fullhost}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${fullhost}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-startupitem.create yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.create yes
</span>
startupitems \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- name calendarserver \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- executable \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${calendarserverpackage}/bin/caldavd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ name calendarserver \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ executable ${calendarserverpackage}/bin/caldavd
</span>
# use defaults, edit launch daemon plists in post-activate below
# executable ${prefix}/sbin/nginx -g "daemon off;" -p ${calendarserverdir}/Library/CalendarServer/logs -c ${calendarserverdir}/Library/CalendarServer/etc/nginx.conf
# pidfile auto ${calendarserverdir}/Library/CalendarServer/logs/nginx.pid
startupitems-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- name calendarserver_proxy \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- executable ${prefix}/sbin/nginx \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pidfile auto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ name calendarserver_proxy \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ executable ${prefix}/sbin/nginx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pidfile auto
</span>
variant initialize_always \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- description {Always initialize all configuration files. Intended\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for development and troubleshooting only. Working deployments\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- must disable this variant to prevent configuration files\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- being overwritten at the next upgrade. Existing configuration\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description {Always initialize all configuration files. Intended \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for development and troubleshooting only. Working deployments \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ must disable this variant to prevent configuration files \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ being overwritten at the next upgrade. Existing configuration \
</span> files are not overwritten by default.} {
ui_warn \
"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -489,14 +490,14 @@ post-deactivate {
</span> delete ${calendarserverpackage}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-notes "Apple Calendar and Contacts Server is a standards-compliant\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-server implementing the CalDAV and CardDAV protocols. Full\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-deployment requires a working mail server, DNS configuration on both the\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-LAN and the internet, including SPF and DKIM records, trusted TLS\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes "Apple Calendar and Contacts Server is a standards-compliant \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+server implementing the CalDAV and CardDAV protocols. Full \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+deployment requires a working mail server, DNS configuration on both the \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+LAN and the internet, including SPF and DKIM records, trusted TLS \
</span> certificates, port forwarding, possibly a mail relay, and more.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Users must reconfigure this installation for their own system, network,\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-and security model specifics by editing all necessary files and checking\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Users must reconfigure this installation for their own system, network, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+and security model specifics by editing all necessary files and checking \
</span> file permissions. A subset of these settings are visible in the files:
port contents calendar-contacts-server
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -514,8 +515,8 @@ These are the locations and network settings for the default configuration:
</span> Personal data (note, outside ${prefix}):
/var/calendarserver/Library/CalendarServer/Data
<span style='display:block; white-space:pre;background:#ffe0e0;'>-A working Calendar and Contacts Server will allow local account\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-authentication at these web pages (ports 8008 and 8800 are\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+A working Calendar and Contacts Server will allow local account \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+authentication at these web pages (ports 8008 and 8800 are \
</span> unencrypted):
http://${fullhost}:8008
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -536,9 +537,9 @@ Known issues:
</span>
security find-generic-password -a calendarserver@${fullhost} -g
<span style='display:block; white-space:pre;background:#ffe0e0;'>- This is a hack to provide twistedcaldav authentication access. See:\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- https://github.com/apple/ccs-calendarserver/blob/master/twistedcaldav/util.py\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- An alternate approach must be used if non-trusted local accounts\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This is a hack to provide twistedcaldav authentication access. See: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ https://github.com/apple/ccs-calendarserver/blob/master/twistedcaldav/util.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ An alternate approach must be used if non-trusted local accounts \
</span> exist on the Calendar and Contacts Server.
* The CalendarServer service does not reliably start after reboot,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -548,8 +549,8 @@ Known issues:
</span> sudo port unload calendar-contacts-server ; sleep 5 ; \\
sudo port load calendar-contacts-server
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * The package ccs-calendarserver is written in Python 2.7, which will\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reach the end of its life on January 1st, 2020. A future version of\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * The package ccs-calendarserver is written in Python 2.7, which will \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reach the end of its life on January 1st, 2020. A future version of \
</span> pip will drop support for Python 2.7."
if { [variant_isset "initialize_always"] } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -558,8 +559,8 @@ if { [variant_isset "initialize_always"] } {
</span> notes-append ""
}
notes-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "The variant +initialize_always is set, which initializes\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- all configuration files. Please disable this variant for\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "The variant +initialize_always is set, which initializes \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ all configuration files. Please disable this variant for \
</span> working deployments."
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -570,27 +571,27 @@ variant apns \
</span> notes-append ""
}
notes-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "Calendar and Contacts Server may be configured to use\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Calendar and Contacts Server may be configured to use \
</span> Apple Push Notification Service (APNS) with these steps:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 1. Acquire APNS Mail certificates from a (virtual) macOS\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- High Sierra 10.13 and Server.app version 5.6. Export\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the APNS certificates and keys from the Keychain into the\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- files com.apple.servermgrd.apns.calendar.cer and\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- com.apple.servermgrd.apns.calendar.key.p12. APNS certificates\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- appear separately with names APSP:<UUID> that correspond to the\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- certificate's User ID field, com.apple.calendar.XServer.<UUID>.\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- APNS keys are simply named com.apple.servermgrd.apns.calendar.\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Repeat for the certificate com.apple.servermgrd.apns.contact.cer\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- and key com.apple.servermgrd.apns.contact.key.p12.\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *Note*: APNS Mail certificate creation is deprecated on\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1. Acquire APNS Mail certificates from a (virtual) macOS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ High Sierra 10.13 and Server.app version 5.6. Export \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the APNS certificates and keys from the Keychain into the \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ files com.apple.servermgrd.apns.calendar.cer and \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ com.apple.servermgrd.apns.calendar.key.p12. APNS certificates \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ appear separately with names APSP:<UUID> that correspond to the \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ certificate's User ID field, com.apple.calendar.XServer.<UUID>. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ APNS keys are simply named com.apple.servermgrd.apns.calendar. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Repeat for the certificate com.apple.servermgrd.apns.contact.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and key com.apple.servermgrd.apns.contact.key.p12. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *Note*: APNS Mail certificate creation is deprecated on \
</span> Server.app version 5.7+.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 1. Acquire APNS Mail certificates from a (virtual) macOS\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- High Sierra 10.13 and Server.app version 5.6. Export\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the certificates from the Keychain into the files\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- com.apple.servermgrd.apns.calendar.p12 and\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- com.apple.servermgrd.apns.contact.p12. *Note*: APNS Mail\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1. Acquire APNS Mail certificates from a (virtual) macOS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ High Sierra 10.13 and Server.app version 5.6. Export \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the certificates from the Keychain into the files \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ com.apple.servermgrd.apns.calendar.p12 and \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ com.apple.servermgrd.apns.contact.p12. *Note*: APNS Mail \
</span> certificate creation is deprecated on Server.app version 5.7\+.
2. Convert the APNS Mail certificates to cert, key, and chain PEM files:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -645,7 +646,7 @@ variant apns \
</span> com.apple.calendar.chain.pem com.apple.contact.chain.pem \\
${calendarserverdir}/Library/CalendarServer/Config/Certificates
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 3. Configure calendarserver for APNS by uncommenting this block in\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3. Configure calendarserver for APNS by uncommenting this block in \
</span> the file ${calendarserverdir}/Library/CalendarServer/Config/calendarserver.plist:
<key>Notifications</key>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -661,6 +662,6 @@ variant apns \
</span> </dict>"
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default_variants +apns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants +apns
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.type none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type none
</span></pre><pre style='margin:0'>
</pre>