wiki:SourceCodeSvn

Version 14 (modified by davea, 16 years ago) (diff)

--

Getting source code

The BOINC source code is stored in a Subversion (SVN) repository. Various versions of the code are available at any given point:

Development

The SVN trunk contains the latest source code for all components of BOINC. It is always under development, and has not necessarily been tested. Use it if you need a recently-added feature.

Client software

The client software (core client and manager) is maintained as follows:

  • The code for each release is 'tagged'. For example, the code for version 6.3.14 is tagged with boinc_core_release_6_3_14.
  • A 'branch' is created for each released minor version. For example, the branch boinc_core_release_6_2 is the code for the latest release of version 6.2.

Server software

For all software other than the client (i.e., server, web, and API) the latest "stable" version is kept in a branch, server_stable.

NOTE: don't use the server software in a client tag/branch; it probably isn't stable.

Using Subversion

On Unix, use the the following commands to check out the trunk, a tag, or a branch:

svn co http://boinc.berkeley.edu/svn/trunk/boinc
svn co http://boinc.berkeley.edu/svn/tags/boinc_core_release_6_3_14
svn co http://boinc.berkeley.edu/svn/branches/boinc_core_release_6_2

On Windows, get a SVN client like TortoiseSVN. Right-click on the parent directory, select 'SVN checkout', and fill in the dialog with one of the above URLs. You can also download svn command-line program for Windows.

Note: some HTTP proxies may cause problems with the SVN protocol. If you have trouble checking out the code, try using https instead of http.

Browsing source code via the web

You can browse the boinc code via a web-based interface. This is useful for getting individual files, or seeing the revision history.

Source code road map

The BOINC source tree includes the following directories:

api
The BOINC API (for applications).
apps
Some test applications.
client
The BOINC core client.
clientgui
The BOINC Manager.
clientscr
The BOINC screensaver for Windows.
clienttray
The BOINC Tray component (checks for user activity on Windows).
db
The database schema and C++ interface layer.
html/ops
PHP files for the operational web interface.
html/user
PHP files for the participant web interface.
html/inc
PHP include files.
html/languages
Translation files for project websites.
lib
Code that is shared by more than one component (core client, scheduling server, etc.).
locale
Translation files for BOINC Manager.
py
Python modules used by tools.
sched
The scheduling server, feeder, and file upload handler.
samples
Several example applications together with Windows and Mac project files and a Linux makefile for building the applications. It also includes Windows versions of some libraries (GLUT, jpeglib, etc.) that many applications will need, but which are not part of BOINC.
test
Test scripts.
tools
Operational utility programs.
win_build
Project files for compiling the client under Windows, and the Windows installer.
zip
Compression functions; not used by BOINC, but may be useful for applications.