File Release System/6.1

From FusionForge Wiki
Revision as of 17:29, 1 November 2017 by Nerville (talk | contribs) (Main Features)

Jump to: navigation, search

This page in other versions: master

FusionForge provides a feature to organize deliverable/product/file releases. Organized by package, release, files, this feature relies on RBAC for permission.

Main Features

  • unlimited organized packages/releases/files
  • public/private packages

Available Widgets

user oriented widgets

project oriented widgets

forge oriented widgets


To enable this system at forge level, the configuration flag use_frs must be set to yes. Per project, the system can be enable/disable through the Project admin tab.


FRS Access Permissions block in Role
FRS Per Package Permissions block in Role

Relying on RBAC, FRS permissions are splitted into 2 groups.

  • FRS access level permissions:
    • No access: Any access to FRS is disabled.
    • FRS access: When set, the per package setting applies
    • FRS Administration: when set, then role has full access to any package and any action over package/release or file.
  • Per Package permissions:
    • No access: disable any access to the package and his content.
    • Read access: can browse/download files/releases in the package
    • File Management: create/modify/delete files in the package.
    • File & Release Management: create/modify/delete files & releases in the package.
    • Package admin: full permission on any action on the package/release/file.

The section Default for new packages applies when new package is created.

Main Page





inject-files.php script

The inject-files.php is located in ~/fusionforge/bin/ directory. This script must be executed on the FusionForge hosting server.

The script creates packages based on the content of a parameter file files.txt which must be located in the same directory than the script.

The content of files.txt file must respect the following format:

  • each line describe one file.
  • each line must have 8 parameters separated by colons.
    • project: the unixname of the project
    • packagename: name of the package. If package does not exist, the package is created.
    • releasename: name of the release. If release does not exist, the release is created.
    • filepath: full path to the file to attach to the release
    • notes: Notes of the release. Only used if release does not exist.
    • changes: Changes of the release. Only used if release does not exist.
    • type: File Type. Integer. See below for values.
    • processor: Processor Type. Integer. See below for values.

type and processor values are respectively ids from frs_filetype and frs_processor.

  • type values taken from SELECT * from frs_filetype:
 1000 | .deb
 5000 | Source .zip
 5010 | Source .bz2
 5020 | Source .gz
 5900 | Other Source File
 9999 | Other
  • processor values taken from SELECT * from frs_processor:
 1000 | i386
 6000 | IA64
 8000 | Any
 9999 | Other

Example of file:

 demoproject:MyPackageA:'1.0':/path/to/the/release/file:'new release':'security fix':5010:9999

forge command line

The forge command line is located in ~/bin/ directory.

The command line supports package/release import or export. Detail information here