Setting up an OpenFLUID marketplace
From OpenFLUID
Contents |
Overview
| OpenFLUID Market allows to distribute OpenFLUID "wares" over the network (local network or internet). Currently, only distribution of simulation functions is enabled, distribution of models and OpenFLUID-builder extensions should be available in the future.
|
Setting up a Marketplace
Marketplace site
A Marketplace is a structured disk tree, accessible through its URL. It hosts packages and associated meta-informations.
A web server (e.g. apache) must be used for http or https access, with correct configuration and permissions.
Marketplace information file
The Marketplace information file is a key-value file, giving information about the Marketplace. It must be called OpenFLUID-Marketplace and must be placed in the root directory of the Marketplace.
This file must contain the following keys in a section called openfluid-marketplace:
- name : the explicit name of the Marketplace
- description : a more detailed description of the Marketplace
- contact : the name of the person to contact, followed by its email adress between chevrons (the email adresse is optional)
Simulation functions packages
Simulation functions packages are .tar.gz archive, containing source or binary simulation functions.
Package names are defined using the following convention <functionID>_<OpenFLUIDversion>_<OSplatform>.ofpk, with:
- <functionID> : ID of the packaged simulation function
- <OpenFLUIDversion> : version number of the OpenFLUID framework, checked for compatibility
- <OSplatform> : OS platforms for which the package has been built. This can be linux-i386, linux-x86-64, win32, win64 for binary packages, or src for source packages
Source
A source package contains source code and CMake build configuration for the packages simulation function. It is unarchived, built and installed in dedicated directories. A CMakeLists.txt file must be present at the root of the package archive.
Binary
A binary package contains an already built simulation function for a given OS. A binary package is usually made of a .sompi, .dllmpi or .dylibmpi file. It is unarchived "as-is" in the dedicated directory.
Licenses files
Licenses files are text files containing the licences contents, referenced by packages in Catalog files (see below). These files must be named with the name of the license and the .txt extension.
Catalog files
Catalog file lists available packages for a given OpenFLUID version. Catalog file names are defined using the following convention Catalog_<OpenFLUIDversion>, where <OpenFLUIDversion> is the version number of OpenFLUID compatible with packages listed in the Catalog file.
A Catalog file is a key-value file, where each section is an ID of a simulation function. Each section can contain the following keys:
- name : the name of the simulation function
- description : the description of the simulation function
- version : the version of the simulation function
- authors : the author(s) of the simulation function
- arch.<OSplatform>.file : the file name for the given <OSplatform>
- arch.<OSplatform>.license : the specific license for the given <OSplatform>
- arch.<OSplatform>.depends : dependencies for the given <OSplatform> (this is only informative, and is not automatically checked)
- arch.src.buildoptions : build options passed to the CMake tool in case of source package
Example
The example below is about a market place delivering simulation functions packages for OpenFLUID version 1.6.2 and (future) version 1.7.0.
In this example, three different functions are available:
- example.func.A
- example.func.B
- example.func.C
Some functions are available as binary package, some as source package, and some functions are available in both packages types.
File tree
/licenses GPLv3.txt GPLv3-OF.txt INRA-wosrc.txt /linux-i386 example.func.A_1.6.2_linux-i386.ofpk example.func.B_1.6.2_linux-i386.ofpk example.func.A_1.7.0_linux-i386.ofpk example.func.B_1.7.0_linux-i386.ofpk /linux-x86-64 example.func.A_1.6.2_linux-x86-64.ofpk example.func.B_1.6.2_linux-x86-64.ofpk /src example.func.A_1.6.2_src.ofpk example.func.B_1.6.2_src.ofpk example.func.C_1.6.2_src.ofpk example.func.A_1.7.0_src.ofpk example.func.B_1.7.0_src.ofpk /win32 example.func.A_1.7.0_win32.ofpk example.func.B_1.7.0_win32.ofpk OpenFLUID-Marketplace Catalog_1.6.2 Catalog_1.7.0
OpenFLUID-Marketplace file
[openfluid-marketplace] name = Example of OpenFLUID-Market description = This OpenFLUID-Marketplace is an example for OpenFLUID community website contact = John Doe <joh.doe@foobar.org>
Catalog files
Catalog_1.6.2 file
[example.func.A] name = example function A arch.src.file = example.func.A_1.6.2_src.ofpk arch.src.license=GPLv3 arch.linux-i386.file = example.func.A_1.6.2_linux-i386.ofpk arch.linux-i386.license=INRAwosrc arch.linux-x86-64.file = example.func.A_1.6.2_linux-x86-64.ofpk arch.linux-x86-64.license=INRAwosrc description = bla bla bla... authors = Fabre JC. version = 11.03 [example.func.B] name = example function B arch.src.file = example.func.B_1.6.2_src.ofpk arch.src.license=GPLv3 arch.linux-i386.file = example.func.B_1.6.2_linux-i386.ofpk arch.linux-i386.license=INRAwosrc arch.linux-x86-64.file = example.func.B_1.6.2_linux-x86-64.ofpk arch.linux-x86-64.license=INRAwosrc description = authors = Fabre JC., Louchart X., Moussa R. [example.func.C] name = example function C arch.src.file = example.func.C_1.6.2_src.ofpk arch.src.license=GPLv3-OF description = authors = Fabre JC., Louchart X.
Catalog_1.7.0 file
[example.func.A] name = example function A arch.src.file = example.func.A_1.7.0_src.ofpk arch.src.license=GPLv3 arch.linux-i386.file = example.func.A_1.7.0_linux-i386.ofpk arch.linux-i386.license=INRAwosrc arch.linux-win32.file = example.func.A_1.7.0_linux-win32.ofpk arch.linux-win32.license=INRAwosrc description = bla bla bla... authors = Fabre JC. version = 11.03 [example.func.B] name = example function B arch.src.file = example.func.B_1.7.0_src.ofpk arch.src.license=GPLv3 arch.linux-i386.file = example.func.B_1.7.0_linux-i386.ofpk arch.linux-i386.license=INRAwosrc arch.linux-win32.file = example.func.B_1.7.0_linux-win32.ofpk arch.linux-win32.license=INRAwosrc description = authors = Fabre JC., Louchart X., Moussa R.
