Version 20 (modified by davea, 8 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:

  • In your project's 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[__PLAN-CLASS][.ext], e.g.:

  • NAME is ignored; typically it is the app name. It must not contain underscores.
  • 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 using xadd).
  • PLAN-CLASS is an optional plan class for the app version.

The file in the example above would have the path


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[__PLAN-CLASS][.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 (update_versions will then set the <executable/> flag on its <file_info>).



Passing extra information about files

If a filename 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()).

If a file of the form


is found, its contents will be used as a digital signature for the corresponding file. See the recommended code-signing practices.

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>).

In the above 2 cases, if the file has a separate logical name, then FILENAME is the full LOGICAL_NAME=PHYSICAL_NAME.

Options to update_versions

-v or --verbose
Enable verbose mode
-s or --sign
silently sign executables (not recommended)
-f or --force
don't prompt before committing changes