<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>