https://github.com/fyralabs/katsu
The vicious image builder
https://github.com/fyralabs/katsu
disk-image distro-tools iso os-image
Last synced: 5 months ago
JSON representation
The vicious image builder
- Host: GitHub
- URL: https://github.com/fyralabs/katsu
- Owner: FyraLabs
- License: mit
- Created: 2022-12-25T13:40:38.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-11T06:11:28.000Z (6 months ago)
- Last Synced: 2024-12-13T23:55:46.759Z (5 months ago)
- Topics: disk-image, distro-tools, iso, os-image
- Language: Rust
- Homepage:
- Size: 549 KB
- Stars: 12
- Watchers: 6
- Forks: 3
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Katsu
> An experimental image builder for RPM/DNF based systems.
Katsu is a tool for building bootable images from RPM based systems. It is an alternative to Lennart Poettering's [mkosi](https://github.com/systemd/mkosi) tool, designed to be robust, fast, and easy to use while still providing many output formats. It is Ultramarine Linux's new image builder from Ultramarine 39 onwards.
Katsu currently supports the following output formats:
- ISO 9660 disc images
- RAW disk images## Why Katsu?
Katsu stemmed from our frustration with Fedora's Lorax/OSBuild toolchain. Lorax is a very complex Python application that relies on another complex Python application, Anaconda, to build images. Then on top of that uses hard-to-read Mako templates to configure the image on top.
We found it difficult to work with Lorax and Anaconda, and we wanted to build images in a more straightforward way where we can control any aspect of the image building process down to the filesystem layout. And thus, Katsu was born.
Katsu uses YAML configuration files to describe the image, with modular manifests similar to the likes of rpm-ostree. This makes it easy to read, write, and maintain Katsu configurations.
## Dependencies
- `xorriso`
- `clang-devel`
- `dracut`
- `limine` or `grub2`
- `rpm`
- `dnf` or `dnf5`
- `systemd-devel`
- `dracut-live`
- `dracut-config-generic`
- `dracut-config-rescue`
- `grub2-tools-extra`
- `dracut-squash`