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