Here's how to add new software to a Baserock system.
First read the quick start guide.
You can then add morph files to strata, systems and clusters. See the existing files in those directories as examples. The strata directory contains definitions for individual programs or groups of programs. The systems directory contains definitions for complete images containing multiple programs, typically for different hardware targets. The clusters directory contains definitions for where the resulting image will be deployed to.
An example strata definition for a program with an sqlite dependency:
name: accounts
kind: stratum
description: Systems for financial accounts administration
build-depends:
- morph: strata/build-essential.morph
chunks:
- name: sqlite3
repo: upstream:sqlite3
ref: 24adc227bc29cd17e39df097fbca389c7724cd14
unpetrify-ref: sqlite-autoconf-3080801
build-depends: []
- name: fin
repo: github:bashrc/fin
ref: 258129099a2456712e73b0cc063c165892d2fd5b
build-depends:
- sqlite3
Notice that you can reference Github repos/commits directly.
morph build systems/$MY_SYSTEM.morph
And if that is successful then deploy to a target with:
morph deploy clusters/$MY_TARGET.morph
Notice that the above example uses a Github repo. If you wish to get your software accepted into upstream baserock then you would need to create a lorry file, as folllows:
git clone http://git.baserock.org/cgit/baserock/local-config/lorries.git
cd lorries/open-source-lorries
vi accounts.lorry
And add something like the following:
{
"fin": {
"type": "git",
"url": "https://github.com/bashrc/fin"
}
}
Then within your strata file change github:bashrc/fin to upstream:fin and also change the ref to your new commit within the lorries repo.