[CalendarServer-users] MacPorts port of ccs-calendarserver

Steven Smith steve.t.smith at gmail.com
Thu Aug 8 04:35:03 PDT 2019

I've ported Apple Calendar and Contacts Server to MacPorts. See https://github.com/macports/macports-ports/pull/4978

This port is completely independent of Server.app, and uses an nginx reverse proxy for modern crypto and to isolate the backend server. I have it deployed and it’s working well.

If anyone has specific comments or suggestions about how ccs-calendarserver is implemented in MacPorts (https://github.com/macports/macports-ports/pull/4978), your feedback would be most welcome.

Specifically, these are known issues that could use some help:

1. ccs-calendarserver doesn’t have standard GNU-like DESTDIR or PREFIX capabilities for staged installs. See https://github.com/apple/ccs-calendarserver/issues/540, https://www.gnu.org/prep/standards/html_node/DESTDIR.html

In my own tests, running `./bin/package -F ${DESTDIR}` hard codes the build directory within all the virtualenv compiled Python code and object libraries, and therefore does not work. Even hacky workarounds like creating symbolic links to `DESTDIR` and building within the symlinks don't work.

This prevents the current MacPorts Portfile from being able to manage/delete/update all the files created with the ccs-calendarserver ./bin/package install command.

2. All local accounts have access to calendarserver's password using

security find-generic-password -a calendarserver@${fullhost} -g

This is a hack to provide twistedcaldav authentication access. See: https://github.com/apple/ccs-calendarserver/blob/master/twistedcaldav/util.py. An alternate approach must be used if non-trusted local accounts exist on the Calendar and Contacts Server.

3. The exisiting Portfile implementation uses native macOS Python, not MacPorts Python. I haven’t been able to get ccs-calendarserver running with non-native Python, which is desirable/best-practice for a package-managed install.

4. The package ccs-calendarserver is written in Python 2.7, which will reach the end of its life on January 1st, 2020. A future version of pip will drop support for Python 2.7. It's not clear yet how macOS will handle Python 2.7 after its EOL. See https://github.com/apple/ccs-calendarserver/issues/537

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-users/attachments/20190808/998ae422/attachment.html>

More information about the calendarserver-users mailing list