This project started out as an attempt to automate the release(8) process on OpenBSD. The prime motivation was to roll my own snapshots in order to test my and others changes to the kernel, user space and everything in between. Hence the name robsd as in release OpenBSD. The scope later grew and the project is by now a kitchen sink for everything related to building, testing and maintaining OpenBSD. It's written in ksh with a dash of C and requires nothing other than what's included in base.
The project is divided into the utilities as follows. All of them are configured using a grammar that should be familiar for anyone with prior OpenBSD experience.
robsd(8) builds a release according to the release process. Some of its noteworthy features:
- The changes since the last build according to CVS is turned into a readable log, similar to the format seen on the *-changes mailing lists.
- Patches can be applied and reverted.
- Detection of build time changes.
- Detection of significant kernel and sets size changes.
robsd-cross(8)
builds a cross compiler tool chain targeting another architecture,
using ${BSDSRCDIR}/Makefile.cross
behind the scenes.
robsd-ports(8) builds ports using dpb(1) behind the scenes.
robsd-regress(8) runs regression tests. HTML summaries can be rendered using robsd-regress-html(8). Example of such output can be viewed at regress.basename.se which uses examples/robsd-regress.conf as its configuration.
canvas(1) exposes the generic parts of the robsd tooling. Providing an empty canvas for task automation, capable of handling both synchronous and asynchronous tasks.
# pkg_add robsd
The installation prefix defaults to /usr/local
and can be altered using the
PREFIX
environment variable when invoking configure
:
$ ./configure
$ make
$ make install
Copyright (c) 2018-2025 Anton Lindqvist. Distributed under the ISC license.