Documentation

Fir is early enough that most of this page describes intentions rather than behaviour. Anything marked draft is a proposal and will change.

The short version

How packages work (draft)

A recipe is a shell script with a name, a version, a source and two functions. It builds into a staging directory, and the resulting package carries a manifest of the files it installed. That manifest is what makes removal and upgrades possible later.

# main/base/fir-base/recipe
name=fir-base
version=1.0.0
source=https://firproject.org/pkgs/fir-base-1.0.0.tar.gz
sha256=...
deps="openrc"

build() {
  ./configure --prefix=/usr
  make
}

install() {
  make DESTDIR="$DESTDIR" install
}

fir-build builds a recipe and produces a package. fir-install installs or removes one using the manifest. Both are drafts, the names may change.

Configuration (draft)

There is nothing to declare. System files are edited by hand, the way they are on any small distribution, and the desktop is a set of dotfiles you can read. Fir does not try to derive the system from a description of it.

Status

PieceState
build toolingnot started
package treenot started
installer and imagesnot started
firwmin progress
this websitein progress

Reading

Fir borrows ideas from KISS Linux, CRUX, Alpine and Gentoo.