<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/3052ed7d1332266f54ac7c19cdf11a8c1d99b2bc">https://github.com/macports/macports-ports/commit/3052ed7d1332266f54ac7c19cdf11a8c1d99b2bc</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 3052ed7d133 calendar-contacts-server: Use xml-file-based auth; migrate away from discontinued macOS Server/OpenDirectory
</span>3052ed7d133 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 3052ed7d1332266f54ac7c19cdf11a8c1d99b2bc
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Tue Jan 3 12:50:29 2023 -0500

<span style='display:block; white-space:pre;color:#404040;'>    calendar-contacts-server: Use xml-file-based auth; migrate away from discontinued macOS Server/OpenDirectory
</span>---
 net/calendar-contacts-server/Portfile              | 70 ++++++++++++++++++----
 .../files/calendarserver.plist                     | 18 ++++++
 2 files changed, 78 insertions(+), 10 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 a6480db7edc..091336f57f7 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;'>@@ -10,7 +10,7 @@ name                calendar-contacts-server
</span> # version from https://github.com/apple/ccs-calendarserver/blob/master/setup.py
 # with date of git commit appended
 version             9.3.20200212
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            3
</span> categories          net mail
 platforms           darwin
 supported_archs     noarch
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,14 +19,14 @@ license             Apache-2
</span> 
 description         Apple Calendar and Contacts Server configuration
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description    ccs-calendarserver is a standards-compliant server\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    implementing the CalDAV and CardDAV protocols,\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    including iMIP and APNS. It provides a shared\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    location on the network allowing multiple users to\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    store and edit calendaring and contact\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    information. This port provides a basic, working,\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    easily modifiable configuration, previously used\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    in macOS Server.app, and an nginx reverse proxy to\
</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>                     handle modern crypto and isolate the backend server.
 
 homepage            https://www.calendarserver.org
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,6 +44,9 @@ 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:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-setuptools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> depends_lib-append  port:cyrus-sasl2 \
                     port:libffi \
                     port:mail-server \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -52,8 +55,25 @@ depends_lib-append  port:cyrus-sasl2 \
</span>                     port:openssl \
                     port:postgresql${postgresql9_version}-server \
                     port:python${python2_version} \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-asn1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-asn1-modules \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-cffi \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-constantly \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-cryptography \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-dateutil \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-enum34 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-incremental \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-ldap \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-mock \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-openssl \
</span>                     port:py${python2_version}-pip \
<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;'>+                    port:py${python2_version}-psutil \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-pycparser \
</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:#e0ffe0;'>+                    port:py${python2_version}-service_identity \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-six \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-virtualenv \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-zopeinterface \
</span> 
 depends_run-append  port:pip_select \
                     port:postgresql_select
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -132,6 +152,7 @@ destroot {
</span>         ${destroot}${calendarserverdir}/Library/CalendarServer \
         ${destroot}${calendarserverpackage}
     foreach d {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        Library/CalendarServer/auth
</span>         Library/CalendarServer/Config
         Library/CalendarServer/Config/Certificates
         Library/CalendarServer/etc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -146,6 +167,9 @@ destroot {
</span>         destroot.keepdirs-append \
             ${destroot}${calendarserverdir}/${d}
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    file attributes \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${calendarserverdir}/Library/CalendarServer/auth \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -permissions 0770
</span>     file attributes \
         ${destroot}${calendarserverdir}/Library/CalendarServer/etc/nginx_root \
         -permissions 0755
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -175,6 +199,11 @@ destroot {
</span>         ${filespath}/calendarserver.plist \
         ${destroot}${calendarserverdir}/Library/CalendarServer/Config/calendarserver.plist.macports
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Directory Service
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0660 -o ${calendarserverUser} -g _calendar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${worksrcpath}/conf/test/accounts.xml \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${calendarserverdir}/Library/CalendarServer/auth/accounts.xml.macports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # nginx reverse proxy
     xinstall -m 0640 -o ${calendarserverUser} -g _calendar \
         ${filespath}/nginx.conf \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -342,6 +371,7 @@ PACKAGE_CALENDARSERVER
</span> 
     # calenderserver configuration and nginx reverse proxy
     foreach f_or_d {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        auth/accounts.xml
</span>         Config/calendarserver.plist
         etc/nginx.conf
     } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -351,6 +381,7 @@ PACKAGE_CALENDARSERVER
</span> 
     # configure all template files with local settings
     foreach d_or_f {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        auth
</span>         Config
         etc
         } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -519,6 +550,25 @@ 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:#e0ffe0;'>+Account and principal information is configurable in the file:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${prefix}/var/calendarserver/Library/CalendarServer/auth/accounts.xml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+with baseline account records of the form:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  <record>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <uid>7E1DE44E-F1E5-4656-93EF-1714B37877A5</uid>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <short-name>username</short-name>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <full-name>User Name</full-name>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <password>strong-password</password>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <email>username@example.com</email>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  </record>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+uid's can must be unique; on macOS two ways of generating uid's are\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+the command `uuidgen`, or for local accounts and especially when migrating\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+from an OpenDirectory-based server:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        dscl . -read /Users/username GeneratedUID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> A working Calendar and Contacts Server will allow local account\
 authentication at these web pages (ports 8008 and 8800 are\
 unencrypted):
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/calendar-contacts-server/files/calendarserver.plist b/net/calendar-contacts-server/files/calendarserver.plist
</span><span style='display:block; white-space:pre;color:#808080;'>index de2d6333381..edecbfcec0e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/calendar-contacts-server/files/calendarserver.plist
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/calendar-contacts-server/files/calendarserver.plist
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -237,7 +237,24 @@
</span>         A variety of directory services are available for use.
       -->
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    <!-- https://www.calendarserver.org/QuickStart.html:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    XML, LDAP, OpenDirectory -->
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <!-- XML File Directory Service -->
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <key>DirectoryService</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      <key>type</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      <string>xml</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      <key>params</key> 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      <dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        <key>xmlFile</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        <string>@PREFIX@/var/calendarserver/Library/CalendarServer/auth/accounts.xml</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      </dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    </dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     <!-- Open Directory Service (Mac OS X) -->
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    <!--
</span>     <key>DirectoryService</key>
     <dict>
         <key>type</key>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -254,6 +271,7 @@
</span>             </array>
         </dict>
     </dict>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    -->
</span> 
     <!-- XML File Augment Service -->
     <key>AugmentService</key>
</pre><pre style='margin:0'>

</pre>