• Stars
    star
    1,128
  • Rank 41,247 (Top 0.9 %)
  • Language
    Python
  • License
    GNU Lesser Genera...
  • Created over 8 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

💽 Build Bespoke OS Images

mkosi — Build Bespoke OS Images

A fancy wrapper around dnf --installroot, apt, pacman and zypper that generates customized disk images with a number of bells and whistles.

For a longer description and available features and options, see the man page.

Packaging status

Installation

Installing mkosi is easy, as it has no runtime Python dependencies (you will need all the tools to format filesystems and bootstrap the distribution appropriate for your image, though).

If you just want the main branch you can run

python3 -m pip install --user git+https://github.com/systemd/mkosi.git

If you want to hack on mkosi do

# clone either this repository or your fork of it
git clone https://github.com/systemd/mkosi/
cd mkosi
python3 -m pip install --user --no-use-pep517 --editable .

This will install mkosi in editable mode to ~/.local/bin/mkosi, allowing you to use your own changes right away.

For development you also need mypy, for type checking, and pytest, to run tests. We check tests and typing in CI (see .github/workflows), but you can run the tests locally as well.

zipapp

You can also package mkosi as a zipapp that you can deploy anywhere in your PATH. Running this will leave a mkosi binary in builddir/

tools/generate-zipapp.sh

Python module

Besides the mkosi binary, you can also call mkosi via

python -m mkosi

when not installed as a zipapp.

Please note, that the python module exists solely for the usage of the mkosi binary and is not to be considered a public API.

git blame

When using git blame, be sure to add --ignore-revs-file .git-blame-ignore-revs to the arguments to ignore irrelevant code formatting commits. This can be set permanently via the blame.ignoreRevsFile git option.

References

More Repositories

1

systemd

The systemd System and Service Manager
C
12,965
star
2

casync

Content-Addressable Data Synchronization Tool
C
1,492
star
3

zram-generator

Systemd unit generator for zram devices
Rust
563
star
4

python-systemd

Python wrappers for systemd functionality
C
465
star
5

pystemd

A thin Cython-based wrapper on top of libsystemd, focused on exposing the dbus API via sd-bus in an automated and easy to consume way.
Python
413
star
6

systemd-stable

Backports of patches from systemd git to stable distributions
C
125
star
7

systemd-netlogd

Forwards messages from the journal to other hosts over the network using syslog format RFC 5424 and RFC 3164
C
68
star
8

journal2gelf

Ships new systemd journal entries to a remote destination in Graylog Extended Log Format (GELF)
Python
64
star
9

node-systemd

V8 engine extension for Node allowing native interaction with systemd and its journal
JavaScript
57
star
10

systemd-bootchart

Boot performance graphing tool
C
53
star
11

kdbus

Out-of-tree kdbus module
C
49
star
12

php-systemd

PHP extension allowing native interaction with systemd and its journal
C
45
star
13

portable-walkthrough-go

A simple yet complete example for a trivial portable service — Go Edition
Go
43
star
14

node-sd-notify

wrapper around sd_notify for using systemd as a node process manager
C++
42
star
15

mkosi-initrd

Build initrd images using mkosi and distro packages
Python
40
star
16

portable-walkthrough

A simple yet complete example for a trivial portable service
C
37
star
17

ejournald

A Erlang binding to the systemd journal C API
Erlang
32
star
18

erlang-sd_notify

Erlang Bindings for sd_notify()
Erlang
18
star
19

package-notes

Tools to add packaging metadata to ELF files
Python
16
star
20

brand.systemd.io

Website with systemd brand assets
HTML
13
star
21

systemd-centos-ci

CI scripts for systemd upstream/downstream testing using the CentOS CI infrastructure
Shell
8
star
22

systemd-coredump-python

Log Python exceptions in the journal via systemd-coredump
Python
8
star
23

journald-cat

Tool to take piped JSON and log the fields to the systemd journal
Python
5
star
24

oci-runtime-tests

Test configs to validate OCI runtime config support in systemd
Shell
5
star
25

systemd-initctl

initctl support for systemd
C
4
star
26

systemd-rhel-testsuite

RHEL downstream testsuite (in progress)
Shell
3
star
27

particleos

Shell
3
star
28

systemd-centos-ci-specs

Spec files for systemd CentOS CI build dependencies
2
star
29

systemd-dfuzzer

Fork of https://github.com/matusmarhefka/dfuzzer/ with custom functionality & improvements. It was moved back to the original repository.
C
1
star
30

systemd-fedora-ci

This project contains code to test systemd
Python
1
star