Version 3 (modified by davea, 11 years ago) (diff)


Releasing application versions

The update_versions script releases new application versions. It creates database entries and copies files to the download directory.

To use:

  • If it doesn't already exist, create an directory 'apps' under the project directory, and add an <app_dir> element to config.xml giving the path of the apps directory.
  • Create a subdirectory for each application, with the short name of the application. Put new application files here (see below). update_versions scans these directories for new application versions.
  • From the project's root directory, run bin/update_versions.

Single-file application versions

File names must be of the form NAME_VERSION_PLATFORM[.ext], e.g.:

  • VERSION is a string of the form N.M, where N and M are integers with M<100. This is converted to the single integer N*100 + M, which is used to specify application versions elsewhere in BOINC. M may have a leading zero, which is ignored.
  • PLATFORM is the name of a platform in the database (if needed, add the platform to the DB).

Multiple-file application versions

Application versions can consist of multiple files, one of which is the main program. To create a multiple-file application version, create a directory with the same name as the main program (of the form NAME_VERSION_PLATFORM[.ext]) and put the files in that directory.

If your application includes executable files other than the main file, make sure that their protection flags include the user execute (u+x) bit.

Passing extra information about files

If a file of the form


is found, its contents will be used as a digital signature for the corresponding file. Recommended code-signing practices are described here.

If a file of the form


is found, its contents will be added to the <file_ref> element describing the file (you can use this for attributes like <copy_file>).

If a file of the form


is found, the file will have the given logical and physical names (i.e., the application will be able to access the file by passing the logical name to boinc_resolve_filename()).