RootFS Specification

This page will guide you through the steps of providing your own RootFS-specification to the buildserver.

Prerequisites

Please review the common usage prerequisites, which are needed for the usage of every product.

Requirements

Suggestions

List Of Available Packages

The main reason why anyone would want a customized RootFS is the selection of installed packages. For a categorized list of packages that are available, please visit the following sites:

Repository File-Structure

This is an example content of a branch in the RootFS-repository that makes use of all the currently supported features.

.
├── configuration.yml
├── pre_install_overlay
│   └── etc
│       └── portage
│           ├── env
│           │   ├── no-distcc.conf
│           │   └── no-parallel.conf
│           └── package.env
└── pre_install_overlay
    └── pre_install_copied

Quick Introduction

For all who skipped reading the background, here's a quick introduction what happens during the build process on the buildserver. The bold words indicate user provided content.

  1. Reset the workspace to a clean state
  2. Parse configuration.yml
  3. Copy pre_install_overlay content to the target system
  4. Execute the pre_install_commands on the target system
  5. Install the specified packages
  6. Copy post_install_overlay content to the target system
  7. Execute the post_install_commands on the target system
  8. Pack RootFS and upload archive to buildmaster

Branch Name-Scheme

< Platform-RootFS-String >_< RootFS-Name >

The buildserver can only build your images, if you follow the correct name-scheme.

Variables

The variables that are needed for your platform can be found in the User Documentation. Please make sure to respect the following criteria as well.

Variable Notes
Platform-RootFS-String Specified and mapped to the target platform by the Administrator. Found in the User Documentation
RootFS-Name Chosen by the user. Must not contain the '_' character

Valid Examples

The configuration.yml file

This file will specify packages to install and allows you to define commands that will be run during the build routine.

Please read through the explained systemd configuration.yml example

Pre/Post-Install File-Overlays

As seen in the repository layout and described outlined in Quick Introduction, it is possible to provide filesystem overlays that will be copied over the target RootFS at specified times.

Note that that file attributes cannot be preserved. If you need special attributes or permissions on files, you have the following possibilities: set attributes in on the files of the install_commands. tar your files in the overlay directories and untar them in one of the install_commands

Advanced Use Cases

This section will provide some interesting use-cases for the output of the RootFS-builds.