<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/1880595227726f23bde71b3e1e3ea96b35487186">https://github.com/macports/macports-ports/commit/1880595227726f23bde71b3e1e3ea96b35487186</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 18805952277 calendar-contacts-server: Fix build; Migrate to postgresql17; Deprecate APNS
</span>18805952277 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 1880595227726f23bde71b3e1e3ea96b35487186
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Sat Dec 28 21:35:37 2024 -0500

<span style='display:block; white-space:pre;color:#404040;'>    calendar-contacts-server: Fix build; Migrate to postgresql17; Deprecate APNS
</span>---
 net/calendar-contacts-server/Portfile              | 263 +++++++++++----------
 .../files/calendarserver.plist                     |   4 +-
 .../files/patch-build_python_venv.diff             |  67 ++++++
 3 files changed, 207 insertions(+), 127 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 aaf094dee7c..4399ac76089 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;'>@@ -5,14 +5,12 @@ PortGroup           conflicts_build 1.0
</span> PortGroup           github 1.0
 
 github.setup        apple ccs-calendarserver 13c706b985fb728b9aab42dc0fef85aae21921c3
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Change github.tarball_from to 'releases' or 'archive' next update
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-github.tarball_from tarball
</span> 
 name                calendar-contacts-server
 # 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            3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            4
</span> categories          net mail
 platforms           {darwin any}
 supported_archs     noarch
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,7 +21,7 @@ description         Apple Calendar and Contacts Server configuration
</span> 
 long_description    ccs-calendarserver is a standards-compliant server \
                     implementing the CalDAV and CardDAV protocols, \
<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:#e0ffe0;'>+                    including iMIP. It provides a shared \
</span>                     location on the network allowing multiple users to \
                     store and edit calendaring and contact \
                     information. This port provides a basic, working, \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,25 +35,33 @@ checksums           rmd160  5fd33bb11370e40d3fb8e6550963ec3587156d24 \
</span>                     sha256  e08d8d1a911d408dfd2f9716a1a02d77801b0d28401186d868d7ca3af198f4c6 \
                     size    3713620
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# diff -NaurdwB ./calendar-contacts-server-orig ./calendar-contacts-server-new | sed -E -e 's/\.\/calendar-contacts-server-(orig|new)/\./g' | sed -E -e 's|/opt/local|@PREFIX@|g' > ~/Downloads/patch-build_python_venv.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-build_python_venv.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace -q "s|@PREFIX@|${prefix}|g" ${worksrcpath}/bin/_build.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # use these to specify python versions, python2 required
 # use ${prefix}/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/group/python-1.0.tcl
 set python2_version 27
 set python2_branch [string index ${python2_version} 0].[string range ${python2_version} 1 end]
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# use these to specify PostgreSQL versions, postgresql9 required
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set postgresql9_version 96
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set postgresql9_branch [string index ${postgresql9_version} 0].[string range ${postgresql9_version} 1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use these to specify PostgreSQL versions, >=postgresql17 required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set postgresql_previous_version 96
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set postgresql_version 17
</span> 
 depends_build-append \
                     port:py${python2_version}-setuptools
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append  port:cyrus-sasl2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append  port:curl-ca-bundle \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:cyrus-sasl2 \
</span>                     port:libffi \
                     port:mail-server \
                     port:memcached \
                     port:nginx \
                     port:openssl \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:postgresql${postgresql9_version}-server \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:postgresql${postgresql_version}-server \
</span>                     port:python${python2_version} \
                     port:py${python2_version}-asn1 \
                     port:py${python2_version}-asn1-modules \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -63,6 +69,7 @@ depends_lib-append  port:cyrus-sasl2 \
</span>                     port:py${python2_version}-constantly \
                     port:py${python2_version}-cryptography \
                     port:py${python2_version}-dateutil \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python2_version}-docutils \
</span>                     port:py${python2_version}-enum34 \
                     port:py${python2_version}-incremental \
                     port:py${python2_version}-ldap \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -77,7 +84,8 @@ depends_lib-append  port:cyrus-sasl2 \
</span>                     port:py${python2_version}-virtualenv \
                     port:py${python2_version}-zopeinterface \
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append  port:pip_select \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_run-append  port:curl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:pip_select \
</span>                     port:postgresql_select
 
 # this conflicts with the requirement sqlparse==0.2.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -85,8 +93,9 @@ conflicts_build-append \
</span>                     py${python2_version}-sqlparse
 
 set calendarserverUser  calendarserver
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set calendarserverGroup _calendar
</span> add_users           ${calendarserverUser} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    group=_calendar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    group=${calendarserverGroup} \
</span>                     home=${prefix}/var/${calendarserverUser}
 
 set ccsname         ${github.project}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -112,10 +121,9 @@ proc correct_horse_battery_staple {} {
</span> # * Keep personal data **outside** of ${prefix}, but provide symlinks
 
 post-extract {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Use postgresql96
</span>     # ccs-calendarserver's postgres code points to `PSQL = "../postgresql/_root/bin/psql"`
     # https://github.com/apple/ccs-calendarserver/blob/master/calendarserver/tools/checkdatabaseschema.py
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace "s|\"../postgresql/_root/bin/psql\"|\"${prefix}/lib/postgresql${postgresql9_version}/bin/psql\"|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|\"../postgresql/_root/bin/psql\"|\"${prefix}/lib/postgresql${postgresql_version}/bin/psql\"|g" \
</span>         ${worksrcpath}/calendarserver/tools/checkdatabaseschema.py
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -164,7 +172,7 @@ destroot {
</span>         Library/CalendarServer/postgresql
         Library/CalendarServer/run
         } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 0750 -o ${calendarserverUser} -g _calendar -d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0750 -o ${calendarserverUser} -g ${calendarserverGroup} -d \
</span>             ${destroot}${calendarserverdir}/${d}
         destroot.keepdirs-append \
             ${destroot}${calendarserverdir}/${d}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -180,7 +188,7 @@ destroot {
</span>         caldavd
         caldavd_requests
         } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 0770 -o ${calendarserverUser} -g _calendar -d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0770 -o ${calendarserverUser} -g ${calendarserverGroup} -d \
</span>             ${destroot}${calendarserverdir}/Library/CalendarServer/run/${d}
         destroot.keepdirs-append \
             ${destroot}${calendarserverdir}/Library/CalendarServer/run/${d}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -197,20 +205,20 @@ destroot {
</span>     close ${dot_profile_fd}
 
     # calenderserver configuration
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 0600 -o ${calendarserverUser} -g _calendar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0600 -o ${calendarserverUser} -g ${calendarserverGroup} \
</span>         ${filespath}/calendarserver.plist \
         ${destroot}${calendarserverdir}/Library/CalendarServer/Config/calendarserver.plist.macports
 
     # Directory Service
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 0660 -o ${calendarserverUser} -g _calendar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0660 -o ${calendarserverUser} -g ${calendarserverGroup} \
</span>         ${worksrcpath}/conf/test/accounts.xml \
         ${destroot}${calendarserverdir}/Library/CalendarServer/auth/accounts.xml.macports
 
     # nginx reverse proxy
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 0640 -o ${calendarserverUser} -g _calendar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0640 -o ${calendarserverUser} -g ${calendarserverGroup} \
</span>         ${filespath}/nginx.conf \
         ${destroot}${calendarserverdir}/Library/CalendarServer/etc/nginx.conf.macports
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 0644 -o ${calendarserverUser} -g _calendar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 -o ${calendarserverUser} -g ${calendarserverGroup} \
</span>         ${filespath}/default.html \
         ${destroot}${calendarserverdir}/Library/CalendarServer/etc/nginx_root
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -265,18 +273,18 @@ post-activate {
</span>     # personal data outside of ${prefix}
     if { ![file exists \
         /private/var/calendarserver/Library/CalendarServer] } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -o ${calendarserverUser} -g _calendar -d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -o ${calendarserverUser} -g ${calendarserverGroup} -d \
</span>             /private/var/calendarserver/Library/CalendarServer
     }
     if { ![file exists \
         /private/var/calendarserver/Library/CalendarServer/Data] } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 0700 -o ${calendarserverUser} -g _calendar -d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0700 -o ${calendarserverUser} -g ${calendarserverGroup} -d \
</span>             /private/var/calendarserver/Library/CalendarServer/Data
     }
 
     # package/install calendarserver binaries
     system -W ${worksrcpath} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "sh <<PACKAGE_CALENDARSERVER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "sh <<PACKAGE${CALENDARSERVERGROUP}SERVER
</span>             # Don't use SecureTransport, prefer MacPorts Python binaries and libraries
             export USE_OPENSSL=1
             export CPPFLAGS='${configure.cppflags}'
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -285,7 +293,7 @@ post-activate {
</span>             export PATH='${workpath}/bin:${prefix}/bin:/usr/bin:/bin:/usr/sbin:/sbin:$env(PATH)'
             ./bin/package \
                 ${calendarserverpackage}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PACKAGE_CALENDARSERVER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PACKAGE${CALENDARSERVERGROUP}SERVER
</span> "
 
     # use network settings for installed example configuration
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -400,7 +408,7 @@ PACKAGE_CALENDARSERVER
</span>                      "s|@CALENDARSERVERUSER@|${calendarserverUser}|g" \
                      "s|@CALENDARSERVERDIR@|${calendarserverdir}|g" \
                      "s|@TLS_CERTIFICATE_NAME@|${tls_certificate_name}|g" \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                     "s|@POSTGRESQL9_VERSION@|${postgresql9_version}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     "s|@POSTGRESQL_VERSION@|${postgresql_version}|g" \
</span>                     ] {
                     reinplace -q ${cmd} ${f}
                 }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -427,7 +435,7 @@ PACKAGE_CALENDARSERVER
</span>             org.macports.calendarserver.plist"
     system -W \
         ${prefix}/etc/${startupitem.location}/org.macports.calendarserver \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "/usr/bin/plutil -insert GroupName -string _calendar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "/usr/bin/plutil -insert GroupName -string ${calendarserverGroup} \
</span>             org.macports.calendarserver.plist"
     system -W \
         ${prefix}/etc/${startupitem.location}/org.macports.calendarserver \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -475,7 +483,7 @@ PACKAGE_CALENDARSERVER
</span>         "s|<string>${calendarserverpackage}/bin/caldavd</string>$|&\\
 \t\t<!--\\
 \t\t<string>-u</string> <string>calendarserver</string>\\
<span style='display:block; white-space:pre;background:#ffe0e0;'>-\t\t<string>-g</string> <string>_calendar</string>\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\t\t<string>-g</string> <string>${calendarserverGroup}</string>\\
</span> \t\t  -->\\
 \t\t<string>-X</string>\\
 \t\t<string>-R</string>\\
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -511,7 +519,7 @@ PACKAGE_CALENDARSERVER
</span>         ${calendarserverdir} {
         if { [file type ${f_or_d}] ne "link" } {
             file attributes ${f_or_d} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                 -owner ${calendarserverUser} -group _calendar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 -owner ${calendarserverUser} -group ${calendarserverGroup}
</span>         }
     }
 }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -638,107 +646,112 @@ if { [variant_isset "initialize_always"] } {
</span>         working deployments."
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# remove after 2026-01-01
</span> variant apns \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    description "Use Apple Push Notification Service (APNS)" {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[exists notes]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # leave a blank line after the existing notes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        notes-append ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description "Use Apple Push Notification Service (APNS) \[deprecated]" {
</span>     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:#ffe0e0;'>-     Apple Push Notification Service (APNS) with these steps:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><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:#ffe0e0;'>-        Server.app version 5.7+.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><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:#ffe0e0;'>-        certificate creation is deprecated on Server.app version 5.7\+.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     2. Convert the APNS Mail certificates to cert, key, and chain PEM files,\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        all named \"apns:com.apple.*.pem\":
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl x509 -inform der -in com.apple.servermgrd.apns.calendar.cer \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            | sed '/BEGIN CERTIFICATE/,\$!d' > com.apple.calendar.cert.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl x509 -inform der -in com.apple.servermgrd.apns.contact.cer \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            | sed '/BEGIN CERTIFICATE/,\$!d' > com.apple.contact.cert.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl pkcs12 -in com.apple.servermgrd.apns.calendar.key.p12 \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -nodes -nocerts | sed '/BEGIN PRIVATE KEY/,\$!d'    \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            > com.apple.calendarserver.key.pem.decrypted
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl pkcs12 -in com.apple.servermgrd.apns.contact.key.p12 \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -nodes -nocerts | sed '/BEGIN PRIVATE KEY/,\$!d'    \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            > com.apple.contact.key.pem.decrypted
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            sudo security add-generic-password -a apns:com.apple.calendar \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -s 'MacPorts Calendar and Contacts Server' \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -T /usr/bin/security \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -w \$(openssl rand -base64 24) \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -U /Library/Keychains/System.keychain
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            sudo security add-generic-password -a apns:com.apple.contact \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -s 'MacPorts Calendar and Contacts Server' \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -T /usr/bin/security \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -w \$(openssl rand -base64 24) \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -U /Library/Keychains/System.keychain
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # encrypt the keys with these passphrases
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl rsa -aes256 -in com.apple.calendar.key.pem.decrypted \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -out com.apple.calendar.key.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl rsa -aes256 -in com.apple.contact.key.pem.decrypted \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -out com.apple.contact.key.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # create the full PKI chain of trust
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            curl -LO https://www.apple.com/certificateauthority/AppleAAI2CA.cer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            curl -LO https://www.apple.com/appleca/AppleIncRootCertificate.cer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl x509 -inform der -in AppleAAI2CA.cer \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -out AppleAAI2CA.cert.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl x509 -inform der -in AppleIncRootCertificate.cer \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                -out AppleIncRootCertificate.cert.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            cat com.apple.calendar.cert.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                AppleAAI2CA.cert.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                AppleIncRootCertificate.cert.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            > com.apple.calendar.chain.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            cat com.apple.contact.cert.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                AppleAAI2CA.cert.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                AppleIncRootCertificate.cert.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            > com.apple.contact.chain.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl verify -CAfile com.apple.calendar.chain.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                com.apple.calendar.cert.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            openssl verify -CAfile com.apple.contact.chain.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                com.apple.contact.cert.pem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            sudo install -m 0644 -o ${calendarserverUser} -g _calendar \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                com.apple.calendar.cert.pem com.apple.contact.cert.pem   \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                com.apple.calendar.key.pem com.apple.contact.key.pem     \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                com.apple.calendar.chain.pem com.apple.contact.chain.pem \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                ${calendarserverdir}/Library/CalendarServer/Config/Certificates
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            sudo bash -c 'cd ${calendarserverdir}/Library/CalendarServer/Config/Certificates \; \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                for f in com.apple.*.pem\; do mv -f \"\${f}\" \"apns:\${f}\"\; done'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><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:#ffe0e0;'>-        the file ${calendarserverdir}/Library/CalendarServer/Config/calendarserver.plist:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            <key>Notifications</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            <dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                <key>Services</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                <dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    <key>APNS</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    <dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        <key>Enabled</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        <true/>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    </dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                </dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            </dict>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "Apple no longer supports APNS certificates for Calendar and Contacts.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        This variant will be removed in a future update. See:\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        https://discussions.apple.com/thread/255898876"
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default_variants    +apns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${postgresql_previous_version} ne ${postgresql_version}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    notes-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "Migration of the caldav PostgreSQL database from\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    postgresql${postgresql_previous_version} to postgresql${postgresql_version} may be required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Issue the following commands, possibly modified for your own specific\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    database location and previous version:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# shutdown calendar-contacts-server and associated database
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo port unload calendar-contacts-server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# move original db cluster.pg directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo ls -l \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo mv \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster.pg \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster_postgresql${postgresql_previous_version}.pg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# create socket to original db and dump the db
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    install -o ${calendarserverUser} -g ${calendarserverGroup} -m 0700 \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -d /tmp/ccs-migration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    install -o ${calendarserverUser} -g ${calendarserverGroup} -m 0700 \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -d /tmp/ccs-migration/PostgresSocket-${postgresql_previous_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/lib/postgresql${postgresql_previous_version}/bin/pg_ctl \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -U caldav -D \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster_postgresql${postgresql_previous_version}.pg \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -o \"-k /tmp/ccs-migration/PostgresSocket-${postgresql_previous_version}\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -l /tmp/ccs-migration/postgresql${postgresql_previous_version}_logfile.txt start
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/lib/postgresql${postgresql_previous_version}/bin/pg_dumpall \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    --username=caldav --host=/tmp/ccs-migration/PostgresSocket-${postgresql_previous_version} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    --file=/tmp/ccs-migration/caldav${postgresql_previous_version}.dump
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo chmod 0600 /tmp/ccs-migration/caldav${postgresql_previous_version}.dump
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/lib/postgresql${postgresql_previous_version}/bin/pg_ctl \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -U caldav -D \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster_postgresql${postgresql_previous_version}.pg \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -o \"-k /tmp/ccs-migration/PostgresSocket-${postgresql_previous_version}\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -l /tmp/ccs-migration/postgresql${postgresql_previous_version}_logfile.txt stop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# import the data into a new database
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    install -o ${calendarserverUser} -g ${calendarserverGroup} -m 0700 -d \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster_postgresql${postgresql_version}.pg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    install -o ${calendarserverUser} -g ${calendarserverGroup} -m 0700 -d \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /tmp/ccs-migration/PostgresSocket-${postgresql_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/lib/postgresql${postgresql_version}/bin/initdb -E UTF8 -U caldav \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster_postgresql${postgresql_version}.pg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/lib/postgresql${postgresql_version}/bin/pg_ctl -U caldav -D \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster_postgresql${postgresql_version}.pg \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -o \"-k /tmp/ccs-migration/PostgresSocket-${postgresql_version}\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -l /tmp/ccs-migration/postgresql${postgresql_version}_logfile.txt start
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/lib/postgresql${postgresql_version}/bin/createdb -U caldav \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -h /tmp/ccs-migration/PostgresSocket-${postgresql_version} caldav
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} bash -c \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    '${prefix}/lib/postgresql${postgresql_version}/bin/psql -U caldav \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -h /tmp/ccs-migration/PostgresSocket-${postgresql_version} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    < /tmp/ccs-migration/caldav${postgresql_previous_version}.dump'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# dump the new db to compare
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/lib/postgresql${postgresql_version}/bin/pg_dumpall --username=caldav \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -h /tmp/ccs-migration/PostgresSocket-${postgresql_version} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    --file=/tmp/ccs-migration/caldav${postgresql_version}.dump
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo chmod 0600 /tmp/ccs-migration/caldav${postgresql_version}.dump
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/lib/postgresql${postgresql_version}/bin/pg_ctl -U caldav -D \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster_postgresql${postgresql_version}.pg \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -o \"-k /tmp/ccs-migration/PostgresSocket-${postgresql_version}\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -l /tmp/ccs-migration/postgresql${postgresql_version}_logfile.txt stop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ls -l /tmp/ccs-migration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# symlink `cluster.pg` to new db data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} ln -s \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ./cluster_postgresql${postgresql_version}.pg \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Data/Database/cluster.pg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# port select the new PostgreSQL version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo port select --set postgresql postgresql${postgresql_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# edit by hand previously installed configuration file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} sed -i \"\" \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    's|postgresql${postgresql_previous_version}|postgresql${postgresql_version}|g' \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${prefix}/var/${calendarserverUser}/Library/${calendarserverUser}/Config/calendarserver.plist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# clean up
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo -u ${calendarserverUser} -g ${calendarserverGroup} rm -fr \\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /tmp/ccs-migration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo port load calendar-contacts-server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 livecheck.type      none
<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 edecbfcec0e..ffcbc986c78 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;'>@@ -128,7 +128,7 @@
</span>     <key>Postgres</key>
     <dict>
         <key>Ctl</key>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>@PREFIX@/lib/postgresql@POSTGRESQL9_VERSION@/bin/pg_ctl</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        <string>@PREFIX@/lib/postgresql@POSTGRESQL_VERSION@/bin/pg_ctl</string>
</span>         <key>Options</key>
         <array>
             <!-- <string>-c log_statement=all</string> -->
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -151,7 +151,7 @@
</span>         <!-- If the DBType is '', and we're spawning postgres ourselves,
              where is the initdb tool to create its database cluster with? -->
         <key>Init</key>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        <string>@PREFIX@/lib/postgresql@POSTGRESQL9_VERSION@/bin/initdb</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        <string>@PREFIX@/lib/postgresql@POSTGRESQL_VERSION@/bin/initdb</string>
</span>     </dict>
 
     <!-- Data root -->
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/calendar-contacts-server/files/patch-build_python_venv.diff b/net/calendar-contacts-server/files/patch-build_python_venv.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..314a1c880ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/calendar-contacts-server/files/patch-build_python_venv.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,67 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -NaurdwB ./bin/_build.sh ./bin/_build.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./bin/_build.sh        2024-12-28 13:40:15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./bin/_build.sh        2024-12-28 13:40:10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -788,7 +788,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       virtualenv==15.0.2  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ruler "Installing ${pkg}";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      "${bootstrap_python}" -m pip install -I ${NESTED} "${pkg}";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      "${bootstrap_python}" -m pip install -I ${NESTED} --cert @PREFIX@/share/curl/curl-ca-bundle.crt "${pkg}";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   done;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -802,6 +802,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --pre                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --no-cache-dir                         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --log-file="${dev_home}/pip.log"       \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --cert @PREFIX@/share/curl/curl-ca-bundle.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "$@";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -815,6 +816,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --find-links="${dev_patches}"            \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --find-links="${dev_home}/pip_downloads" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --log-file="${dev_home}/pip.log"         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --cert @PREFIX@/share/curl/curl-ca-bundle.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "$@";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -826,6 +828,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --no-cache-dir                           \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --find-links="${dev_patches}"            \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --log-file="${dev_home}/pip.log"         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --cert @PREFIX@/share/curl/curl-ca-bundle.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "$@";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -NaurdwB ./requirements-cs.txt ./requirements-cs.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./requirements-cs.txt  2024-12-28 13:40:15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./requirements-cs.txt  2024-12-28 13:40:10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,5 +37,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     psutil==5.0.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     setproctitle==1.1.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    # xattr==0.7.5  # Only needed for upgrades from ancient versions.  Added in _cache_deps.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    xattr==0.7.5  # Only needed for upgrades from ancient versions.  Added in _cache_deps.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         #cffi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -NaurdwB ./requirements-twisted-default.txt ./requirements-twisted-default.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./requirements-twisted-default.txt     2024-12-28 13:40:15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./requirements-twisted-default.txt     2024-12-28 20:47:02
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,7 +10,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #   but doesn't specify them as dependencies, so that are explicitly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #   added to calendarserver.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #pyOpenSSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    service_identity==16.0.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    service_identity
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         characteristic==14.3.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         pyasn1==0.1.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         pyasn1-modules==0.0.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,7 +18,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pycrypto==2.6.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pyOpenSSL==16.2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cryptography==1.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        cryptography
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           idna
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             #pyasn1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             #cffi
</span></pre><pre style='margin:0'>

</pre>