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/cgi-bin/cgit.cgi/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.