Unix project package layout

The purpose of this page is to describe what is needed to create a Unix package to install the BOINC software needed to create and run a BOINC project. The primary idea is to make it easy for anyone who is interested in doing so to install the package, run some initializations scripts, and thus easily create a working BOINC project.

This will necessarily involve sorting through all the items listed on the ProjectMain page, and the steps described in the ServerIntro page, to see what can be automated, and what still needs to be done by the project admin "by hand"

A BOINC project must be hosted on a Unix computer, but any Unix/Linux? distribution should be supported. It will be useful to have different Linux distros use the same packaging principles and file locations to the extent that this is possible. Files and directories should be placed in accordance with the guiding principles of the Filesystem Hierarchy Standard, which may be found at

Keep in mind that it is a requirement of rpm packages (and probably Debian as well?) that packages install without any user input or dialogue. The package only installs the software. It is then up to the user who creates the project to run make_project (or a script which wraps it?) to set up the project.

Existing Packages

Filesystem layout

What goes where? $prefix/boinc/bin,lib,share,etc or what?

Project Directory

  • Keep in mind that we want to allow for the possibility of more than one project being hosted on the same server.
  • The package should probably create a "boincadm" user and group. Then there is a "projects" directory under the home directory of that user. Then make_project simply creates the new project under that, as is the default.

Project Initiation

  • Is it sufficient to run make_project from "boincadm", or is there anything else required first?
  • Need man pages. Installing the package just replaces building from source. There is more to starting a project than that.

Template Files

What files need to be provided, as templates which the project admin can then edit for their purpose (or which can be initially edited by an installation script)?

  • Web server configuration file
  • config.xml
  • cron task to run start --cron script
  • Log rotation config file?

See Also

Last modified 11 years ago Last modified on Mar 3, 2011, 4:06:18 PM