> On Feb 18, 2017, at 12:57 AM, Emmanuel Bourreau <ebourr...@nordnet.fr> wrote:
> 
> Another question:
> how can we use calendar server as a daemon on 10.11.6 ?
> bin/run -d crashes but bin/run -n works. But the second one prevents my 
> computer to switch off automatically at the end of the day.

bin/run isn't intended for installing or managing a service that people are 
actually using, it is just a developer convenience. Properly installing 
CalendarServer varies by platform, as does the recommended way to manage 
CalendarServer as a daemon. As you are on OS X, use a launchd 
<https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html#//apple_ref/doc/uid/10000172i-SW7-BCIEDDBJ>
 plist to run the service as a daemon, something like:

<far too much time passes as I try to make this work>

This is actually really hard, or at least non-obvious, which is probably one of 
the reasons the documentation is so sparse. Some of the problems I've 
encountered along this path include:

* you have to do the USE_OPENSSL=1 thing, because using keychain from a launchd 
daemon is a black art that shouldn't be attempted.

* specifying a launchd job in the system domain (/Library/LaunchDaemons) 
configured to run as your personal account will likely not work. I can't get it 
to work, and I think it's due to something I don't know about launchd that's 
causing it to try to give the launched process access to my GUI session, or 
something. Specifying a user that is not logged in seems to work.

* ./bin/package doesn't work on macOS. "/usr/bin/python2.7 -m virtualenv 
--system-site-packages --no-setuptools --always-copy ..." results in a bunch of 
permission denied errors. Removing the "--always-copy" option works around it, 
but I haven't thought through the possible implications. Ultimately this is 
caused by a macOS security feature called System Integrity Protection, which 
includes use of special file flags on apple-provides OS components. Some of 
these flags are not writable under normal circumstances, and shutil tries to 
preserve all flags, so it blows up.

* After finally arriving at a ./bin/package'd installation at 
/Users/Shared/ccs, which I've chowned to the target user, I can't start it. 
Adding "set -x" to the top of bin/caldavd shows:
        exec /Users/Shared/ccs/bin/python '' --reactor=kqueue -n caldav -f 
/Users/Shared/ccs/conf/caldavd-dev.plist -o Twisted/reactor=kqueue
        /Users/Shared/ccs/bin/python: can't find '__main__' module in ''
Eventually I realized this is because sourcing environment.sh (produced by 
./bin/package) is not enough; one most also activate the virtualenv produced by 
./bin/package (source virtualenv/bin/activate) prior to starting caldavd.

* Since bin/package produces no configs, so as a test (read: do not do this for 
real, developing a config file takes time and effort), I just copied the 'conf' 
directory from the project root into the dest dir produced by bin/package. Copy 
caldavd-test.plist to caldavd-dev.plist. Fish 
twistedcaldav/test/data/server.pem out of the project directory and place it in 
your dest dir, and fix the path to server.pem in caldavd-dev.plist. Also create 
the 'data' directory at the top level of your dest dir.

* Now it can, maybe, hopefully, actually start:

/Users/Shared/ccs/bin/caldavd -X -R kqueue -f 
/Users/Shared/ccs/conf/caldavd-dev.plist -L

Yes! works interactively.

* But not via a launchd plist. It just exits with a status of '78' according to 
'sudo launchctl list', which is not helpful. I have tried manually declaring 
PYTHONPATH and PATH as an environment var in the launchd.plist with what should 
be the right settings, but it still doesn't work.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.dre.calendarserver</string>

    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        
<string>/Users/Shared/ccs/bin:/Users/Shared/ccs/virtualenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
        <key>PYTHONPATH</key>
        
<string>/Users/Shared/ccs/virtualenv/lib/python27.zip:/Users/Shared/ccs/virtualenv/lib/python2.7:/Users/Shared/ccs/virtualenv/lib/python2.7/plat-darwin:/Users/Shared/ccs/virtualenv/lib/python2.7/plat-mac:/Users/Shared/ccs/virtualenv/lib/python2.7/plat-mac/lib-scriptpackages:/Users/Shared/ccs/virtualenv/lib/python2.7/lib-tk:/Users/Shared/ccs/virtualenv/lib/python2.7/lib-old:/Users/Shared/ccs/virtualenv/lib/python2.7/lib-dynload:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages:/Users/Shared/ccs/virtualenv/lib/python2.7/site-packages:/Users/Shared/ccs/virtualenv/src/twextpy:/Users/Shared/ccs/virtualenv/src/kerberos:/Users/Shared/ccs/virtualenv/src/pycalendar/src:/Users/Shared/ccs/virtualenv/src/caldavclientlibrary:/Users/Shared/ccs/virtualenv/src/caldavtester:/Users/Shared/ccs/virtualenv/lib/python2.7/site-packages/CalendarServer-9.1b1.dev0+a5933eaf63f5f3aef3b10949e70ecc0f5a49b736-py2.7.egg:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python:/Users/Shared/ccs/virtualenv/lib/python2.7/site-packages:/Library/Python/2.7/site-packages://Library/Frameworks/UIAutomation.framework/Versions/A/lib/python:/AppleInternal/Library/Python/2.7/site-packages:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC</string>
    </dict>

    <key>WorkingDirectory</key>
    <string>/Users/Shared/ccs</string>

    <key>ProgramArguments</key>
    <array>
        <string>/Users/Shared/ccs/bin/caldavd</string>
        <string>-X</string>
        <string>-R</string>
        <string>kqueue</string>
        <string>-f</string>
        <string>/Users/Shared/ccs/conf/caldavd-dev.plist</string>
        <string>-L</string>
    </array>

    <key>UserName</key>
    <string>calendarz</string>

    <key>GroupName</key>
    <string>calendarz</string>

    <key>KeepAlive</key>
    <true/>

    <key>SessionCreate</key>
    <false/>

    <key>StandardOutPath</key>
    <string>/tmp/ccs.log</string>

    <key>StandardErrorPath</key>
    <string>/tmp/ccs.log</string>

</dict>
</plist>

I have tried using a wrapper script that sources environment.sh and activates 
the virtualenv, and specifying that as the only ProgramArgument, but that fails 
the same way. I give up for now, and possibly forever. I recommend not using 
macOS for running CalendarServer. Sorry.

-dre


> 
> Console says python crashes
> 
> here is the two lines:
> 18/02/2017 09:51:13,633 com.apple.xpc.launchd[1]: 
> (com.apple.ReportCrash[3618]) Endpoint has been activated through legacy 
> launch(3) APIs. Please switch to XPC or bootstrap_check_in(): 
> com.apple.ReportCrash
> 18/02/2017 09:51:13,993 ReportCrash[3618]: Saved crash report for 
> python[3609] version 94 to 
> /Users/emmanuel/Library/Logs/DiagnosticReports/python_2017-02-18-095113_Mac-Pro-de-Emmanuel.crash
> 
> Is it SIP ?
> 
> Emmanuel
>> Le 18 févr. 2017 à 02:05, Andre LaBranche <d...@apple.com> a écrit :
>> 
>> Hi,
>> 
>> I'm not sure why a reboot fixed it, unless that somehow included rebuilding 
>> memcached. This could also be related to environmental changes like 
>> installing the Xcode CLI Tools (which are recommended). Research indicates 
>> this problem is similar to things we've seen when using the latest xcode on 
>> 10.11.6 without the CLI tools installed.
>> 
>> -dre
>> 
>>> On Feb 17, 2017, at 8:10 AM, Emmanuel Bourreau <ebourr...@nordnet.fr> wrote:
>>> 
>>> Hello again,
>>> I have restarted my computer and now it works.
>>> Don’t know why…
>>> Emmanuel
>>>> Le 17 févr. 2017 à 11:08, Emmanuel Bourreau <ebourr...@nordnet.fr> a écrit 
>>>> :
>>>> 
>>>> Hello
>>>> as usual, you’re right !
>>>> But I have another problem
>>>> After bin/run -n…
>>>> 
>>>> Starting server...
>>>> Reading configuration from file: 
>>>> /Users/emmanuel/CalendarServer2/master/conf/caldavd-dev.plist
>>>> 2017-02-17T10:51:17+0100 [twistedcaldav.upgrade#info] Converting 
>>>> augments.xml
>>>> 2017-02-17T10:51:17+0100 [twistedcaldav.upgrade#info] Converting 
>>>> augments.xml
>>>> 2017-02-17T10:51:17+0100 
>>>> [calendarserver.tap.caldav.CalDAVServiceMaker#info] Calendar and Contacts 
>>>> Server 9.1b1.dev0+7c50b666693493196e6c3df59811063ef7368d97 starting 
>>>> Combined process...
>>>> 2017-02-17T10:51:17+0100 [twistedcaldav.localization#info] Looking for 
>>>> Apple .lproj directories in locales
>>>> 2017-02-17T10:51:17+0100 [twisted.scripts._twistd_unix.UnixAppLogger#info] 
>>>> twistd 16.6.0 
>>>> (/Users/emmanuel/CalendarServer2/master/.develop/virtualenv/bin/python 
>>>> 2.7.10) starting up.
>>>> 2017-02-17T10:51:17+0100 [twisted.scripts._twistd_unix.UnixAppLogger#info] 
>>>> reactor class: twisted.internet.selectreactor.SelectReactor.
>>>> 2017-02-17T10:51:17+0100 [-] AMPPushNotifierFactory starting on 62311
>>>> 2017-02-17T10:51:17+0100 [-] ControlSocket starting on 
>>>> './data/Logs/state/caldavd.sock'
>>>> 2017-02-17T10:51:17+0100 [txdav.base.datastore.subpostgres#info] Cluster 
>>>> already exists at 
>>>> /Users/emmanuel/CalendarServer2/master/data/Data/Database/cluster
>>>> 2017-02-17T10:51:17+0100 [txdav.base.datastore.subpostgres#info] 
>>>> Requesting postgres start via: 
>>>> ['/Users/emmanuel/CalendarServer2/master/.develop/roots/PostgreSQL/bin/pg_ctl',
>>>>  'start', 
>>>> '--log=/Users/emmanuel/CalendarServer2/master/data/Logs/postgres.log', 
>>>> '--timeout=86400', '-w', '-o', "-c listen_addresses='' -c 
>>>> unix_socket_directories=/tmp/ccs_postgres_bfc609ea6b4ff8bf216572903d163531 
>>>> -c shared_buffers=139 -c max_connections=93 -c 
>>>> standard_conforming_strings=on -c unix_socket_permissions=0770 -c 
>>>> log_line_prefix=%t"]
>>>> 2017-02-17T10:51:17+0100 [memcached-Default] dyld: lazy symbol binding 
>>>> failed: Symbol not found: _clock_gettime
>>>> 2017-02-17T10:51:17+0100 [memcached-Default]   Referenced from: 
>>>> /Users/emmanuel/CalendarServer2/master/.develop/roots/libevent/lib/libevent-2.0.5.dylib
>>>>  (which was built for Mac OS X 10.12)
>>>> 2017-02-17T10:51:17+0100 [memcached-Default]   Expected in: 
>>>> /usr/lib/libSystem.B.dylib
>>>> 2017-02-17T10:51:17+0100 [memcached-Default] dyld: Symbol not found: 
>>>> _clock_gettime
>>>> 2017-02-17T10:51:17+0100 [memcached-Default]   Referenced from: 
>>>> /Users/emmanuel/CalendarServer2/master/.develop/roots/libevent/lib/libevent-2.0.5.dylib
>>>>  (which was built for Mac OS X 10.12)
>>>> 2017-02-17T10:51:17+0100 [memcached-Default]   Expected in: 
>>>> /usr/lib/libSystem.B.dylib
>>>> 2017-02-17T10:51:17+0100 
>>>> [txdav.base.datastore.subpostgres.PostgresMonitor#info] waiting for server 
>>>> to start....
>>>> 2017-02-17T10:51:18+0100 
>>>> [txdav.base.datastore.subpostgres.PostgresMonitor#info]  stopped waiting
>>>> 2017-02-17T10:51:18+0100 
>>>> [txdav.base.datastore.subpostgres.PostgresMonitor#error] pg_ctl: could not 
>>>> start server
>>>> 2017-02-17T10:51:18+0100 
>>>> [txdav.base.datastore.subpostgres.PostgresMonitor#error] Examine the log 
>>>> output.
>>>> 2017-02-17T10:51:18+0100 
>>>> [txdav.base.datastore.subpostgres.PostgresMonitor#info] pg_ctl process 
>>>> ended with status=256
>>>> 2017-02-17T10:51:18+0100 
>>>> [txdav.base.datastore.subpostgres.PostgresMonitor#error] Could not start 
>>>> postgres; see postgres.log
>>>> 2017-02-17T10:51:18+0100 [txdav.base.datastore.subpostgres#critical] Can't 
>>>> start or connect to postgres: No such socket file: 
>>>> /tmp/ccs_postgres_bfc609ea6b4ff8bf216572903d163531/.s.PGSQL.5432
>>>> 2017-02-17T10:51:18+0100 [-] (UNIX Port ./data/Logs/state/caldavd.sock 
>>>> Closed)
>>>> 2017-02-17T10:51:18+0100 [-] (TCP Port 62311 Closed)
>>>> 
>>>> And the server doesn’t start. Or I think so, because i can’t connect with 
>>>> Safari on localhost:8008 or 8443.
>>>> I remember I had same problem but can’t remember how i've solved it.
>>>> Furthermore : Is it a good idea to use bin/run -n at each startup of my 
>>>> computer ?
>>>> Thanks
>>>> Emmanuel
>>>> 
>>>>> Le 17 févr. 2017 à 03:33, Andre LaBranche <d...@apple.com> a écrit :
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> Try deleting the "localhost" cert from your keychain (using 
>>>>> /Applications/Utilities/Keychain). I've seen this problem a few times but 
>>>>> am still not sure exactly how it happens - possibly CalendarServer has 
>>>>> lost access privs to a keychain item that was previously stashed there. 
>>>>> Deleting will allow new items to be created.
>>>>> 
>>>>> Alternatively, you can delete the .develop directory then "export 
>>>>> USE_OPENSSL=1" and re-run bin/develop to disable use of SecureTransport, 
>>>>> which includes disabling the use of keychain to store the server's 
>>>>> private key.
>>>>> 
>>>>> -dre
>>>>> 
>>>>> On Feb 16, 2017, at 3:30 PM, Emmanuel Bourreau <ebourr...@nordnet.fr> 
>>>>> wrote:
>>>>> 
>>>>>> Hello,
>>>>>> during the bin/develop, i have the following error
>>>>>> Keychain init.
>>>>>> Could not find identity 'org.calendarserver.test'
>>>>>> Found certificate 'localhost'
>>>>>> Traceback (most recent call last):
>>>>>>   File "bin/keychain_init.py", line 164, in <module>
>>>>>>     identityCreate()
>>>>>>   File "bin/keychain_init.py", line 67, in identityCreate
>>>>>>     raise RuntimeError(error if error else output)
>>>>>> RuntimeError: security: No matching identity found for "localhost"
>>>>>> 
>>>>>> Next, if i try a « bin/run -n » 
>>>>>> i obtain
>>>>>> The configured TLS Keychain Identity (Keychain: org.calendarserver.test) 
>>>>>> cannot be used: Unable to load Keychain identity: org.calendarserver.test
>>>>>> 
>>>>>> System : 10.11.6
>>>>>> 
>>>>>> Calendarserver 9.1 
>>>>>> 
>>>>>> Can you help me ?
>>>>>> Thanks
>>>>>> Emmanuel
>>>>>> _______________________________________________
>>>>>> calendarserver-users mailing list
>>>>>> calendarserver-users@lists.macosforge.org
>>>>>> https://lists.macosforge.org/mailman/listinfo/calendarserver-users
>>>> 
>>>> _______________________________________________
>>>> calendarserver-users mailing list
>>>> calendarserver-users@lists.macosforge.org
>>>> https://lists.macosforge.org/mailman/listinfo/calendarserver-users
>>> 
>> 
> 

_______________________________________________
calendarserver-users mailing list
calendarserver-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/calendarserver-users

Reply via email to