BOINC on MacOS X
This document describes what BOINC needs on MacOS X,
the people who are working on it, and other info.
Mac users expect ease-of-use and a polished GUI.
We cannot require them to use command-line interfaces,
as BOINC currently does.
I propose that two separate versions of BOINC
be released and maintained for MacOS X:
- A simple version.
This will be based on GreenKeeper Software's
It uses a GUI program, written in Objective C,
that runs the core client as a subprocess.
It intercepts stdout and reads files - no GUI RPC.
The installer installs the GUI and the core client.
The GUI shows the message log and allows project attach/detach.
The installer is minimal and doesn't ask any questions.
It does a 'single-user install' - the GUI (and therefore the core client)
runs when the installing user is logged in.
It doesn't allow for screensaver or application graphics.
The GUI has an icon in the Mac system tray (the upper left corner,
whatever it's called).
- A advanced version.
This will be based on the WxWidgets GUI (the 'BOINC manager').
The installer installs the manager and the core client, and
arranges for the manager to run on login.
The manager in turn runs the core client.
Eventually we will add a screensaver,
and multi-user and 'run always' install options, like we have on Windows.
I recommend that the simple version remain simple.
Only features essential to operation (e.g. proxy settings) should be added.
Otherwise we'll duplicate effort.
In the future we will release new versions of the
BOINC core client and manager an a fairly frequent basis.
We (the BOINC group, possibly with outside help)
need to be able to create new Mac installers easily
whenever a new version is released.
Also, I'd like all the resources needed to create these installers
(code, project files) to be part of the BOINC source code distribution,
and to be under the LGPL license.
Things we need to do
High-priority tasks (needed to release the simple version):
- Decide where the BOINC data directory should go.
If someone switches from the simple version to the advanced version,
it shouldn't interfere with their projects and results.
- David needs to coordinate with Martin on the status of his code,
and on procedures for building releases.
- Get idle-time detection to work.
- Figure out how to compile on 10.3 but create
an executable that will run on 10.2 and/or 10.1.
Rom reports that there's some include files that may
take care of this:
Medium-priority tasks (needed to release an advanced version):
- Create an Xcode project file so that
developers can debug the core client and the manager in Xcode.
Charlie Fenton has done this,
and we'll check it into CVS soon.
- Bernd Machenschalk (bernd.machenschalk at aei.mpg.de)
- Bernd has helped a lot with Einstein@home.
- Chris Alemany (chrisale at mac.com)
- Chris developed an installer for the core client only
that runs it at boot time (login not needed).
(Chris, what's the URL for this?)
- Charlie Fenton (boinc at cfenton.com)
- Charlie is a veteran Mac programmer and knows a lot
about OS X in general.
He ported SETI@home Classic to the Mac
(including the screensaver) and did a lot of work
on the Windows and platform-indpendent code too.
- Eric Myers (myers at noether.vassar.edu)
- Eric is a physicist working on Einstein@home.
He made an installer for the core client using Applescript
that prompts for project URL/key at install time.
- Martin Patfield (developer at greenkeepersoftware.com)
- Martin is the main developer of Deep Thought.
- Rom Walton (rwalton at ssl.berkeley.edu)
- Rom works full-time for BOINC.
He's primarily a Windows developer,
but has a 10.3 Mac and is learning the environment.
He's the main developer of the BOINC manager.
- David Anderson (davea at ssl.berkeley.edu)
- I run BOINC and can do project management for Mac
but not much else.
I have a 10.3 machine and can build and test as needed.
Return to BOINC main page
Last modified 8:52 PM UTC, October 17 2012.
Copyright © 2017 University of California.
Permission is granted to copy, distribute and/or modify this document
under the terms of the
GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.