Red Bear OS 89e1c67006 installer: compute filesystem_size from the package set (target-agnostic)
--filesystem-size previously just echoed config.general.filesystem_size (or 0),
so every target hardcoded a magic image size that either wasted space or
overflowed (ENOSPC / os error 28) as the package set changed.

Add compute_filesystem_size_mb(): when filesystem_size is not pinned, size the
RedoxFS image from the ACTUAL package contents — walk the transitive package
closure (config [packages] + each pkgar's `depends`), do per-file block
accounting (ceil(size/BLOCK_SIZE) data blocks + one node block per entry), add
record-tree/header structural overhead and a free-space margin so the live/
writable filesystem is usable. An explicit filesystem_size still overrides.

Identical logic for mini/full/bare/grub/any config.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-29 11:26:31 +09:00
2026-07-09 22:24:03 +07:00
2026-07-02 22:23:35 +07:00
2026-07-03 14:59:57 +07:00
2017-10-20 20:08:54 -06:00
2017-01-09 14:46:56 -07:00
2024-10-18 12:20:09 -06:00

Redox OS installer

The Redox installer will allow you to produce a Redox OS image. You will be able to specify:

  • Output device (raw image, ISO, QEMU, VirtualBox, drive)
  • Filesystem
  • Included packages
  • Method of installation (from source, from binary)
  • User accounts

You will be prompted to install dependencies, based on your OS and method of installation. The easiest method is to install from binaries.

Usage

It is recommended to compile with cargo, in release mode:

cargo build --release

By default, you will be prompted to supply configuration options. You can use the scripted mode by supplying a configuration file:

cargo run --release -- config/example.toml

An example configuration can be found in config/example.toml. Unsuplied configuration will use the default. You can use the general.prompt setting to prompt when configuration is not set. Multiple configurations can be specified, they will be built in order.

Embedding

The installer can also be used inside of other crates, as a library:

# Cargo.toml
[dependencies]
redox_installer = "0.1"
// src/main.rs
extern crate redox_installer;

fn main() {    
    let mut config = redox_installer::Config::default();
    ...
    redox_installer::install(config);
}
S
Description
RedBear Operating System, based on RedoxOS. Licenced under MIT license.
https://redbearos.org
Readme MIT 20 GiB
Languages
C 37.5%
C++ 37.2%
JavaScript 6.7%
QML 3.4%
HTML 3.2%
Other 11.4%