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
- morph: strata/build-essential.morph
- name: sqlite3
  repo: upstream:sqlite3
  ref: 24adc227bc29cd17e39df097fbca389c7724cd14
  unpetrify-ref: sqlite-autoconf-3080801
  build-depends: []
- name: fin
  repo: github:bashrc/fin
  ref: 258129099a2456712e73b0cc063c165892d2fd5b
  - 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
cd lorries/open-source-lorries
vi accounts.lorry

And add something like the following:

    "fin": {
        "type": "git",
        "url": ""

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.