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