{"id":13647365,"url":"https://github.com/osbuild/osbuild","last_synced_at":"2026-02-11T11:01:09.773Z","repository":{"id":37458138,"uuid":"165869351","full_name":"osbuild/osbuild","owner":"osbuild","description":"Build-Pipelines for Operating System Artifacts","archived":false,"fork":false,"pushed_at":"2026-02-06T18:00:31.000Z","size":36439,"stargazers_count":257,"open_issues_count":29,"forks_count":138,"subscribers_count":22,"default_branch":"main","last_synced_at":"2026-02-07T04:19:04.882Z","etag":null,"topics":["automation","build-system","images","operating-systems"],"latest_commit_sha":null,"homepage":"https://www.osbuild.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osbuild.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-01-15T14:55:29.000Z","updated_at":"2026-02-06T18:00:41.000Z","dependencies_parsed_at":"2026-02-06T20:02:39.358Z","dependency_job_id":null,"html_url":"https://github.com/osbuild/osbuild","commit_stats":null,"previous_names":[],"tags_count":180,"template":false,"template_full_name":null,"purl":"pkg:github/osbuild/osbuild","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fosbuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fosbuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fosbuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fosbuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osbuild","download_url":"https://codeload.github.com/osbuild/osbuild/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fosbuild/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29332292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T06:13:03.264Z","status":"ssl_error","status_checked_at":"2026-02-11T06:12:55.843Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","build-system","images","operating-systems"],"created_at":"2024-08-02T01:03:31.532Z","updated_at":"2026-02-11T11:01:09.711Z","avatar_url":"https://github.com/osbuild.png","language":"Python","funding_links":[],"categories":["automation","Python"],"sub_categories":[],"readme":"# OSBuild\n\nBuild-Pipelines for Operating System Artifacts\n\nOSBuild is a pipeline-based build system for operating system artifacts. It\ndefines a universal pipeline description and a build system to execute them,\nproducing artifacts like operating system images, working towards an image\nbuild pipeline that is more comprehensible, reproducible, and extendable.\n\nSee the `osbuild(1)` man-page for details on how to run osbuild, the definition\nof the pipeline description, and more.\n\n## Project\n\n * **Website**: https://www.osbuild.org\n * **Bug Tracker**: https://github.com/osbuild/osbuild/issues\n * **Discussions**: https://github.com/orgs/osbuild/discussions\n * **Matrix**: #image-builder on [fedoraproject.org](https://matrix.to/#/#image-builder:fedoraproject.org)\n * **Changelog**: https://github.com/osbuild/osbuild/releases\n\n### Principles\n\n1. [OSBuild stages](./stages) are never broken, only deprecated. The same manifest should always produce the same output.\n2. [OSBuild stages](./stages) should be explicit whenever possible instead of e.g. relying on the state of the tree.\n3. Pipelines are independent, so the tree is expected to be empty at the beginning of each.\n4. Manifests are expected to be machine-generated, so OSBuild has no convenience functions to support manually created manifests.\n5. The build environment is confined against accidental misuse, but this should not be considered a security boundary.\n6. OSBuild may only use Python language features supported by the oldest target distribution.\n\n### Contributing\n\nPlease refer to the [developer guide](https://osbuild.org/docs/developer-guide/index) to learn about our workflow, code style and more.\n\n## Requirements\n\nThe requirements for this project are:\n\n * `bubblewrap \u003e= 0.4.0`\n * `python \u003e= 3.6`\n\nAdditionally, the built-in stages require:\n\n * `bash \u003e= 5.0`\n * `coreutils \u003e= 8.31`\n * `curl \u003e= 7.68`\n * `qemu-img \u003e= 4.2.0`\n * `rpm \u003e= 4.15`\n * `tar \u003e= 1.32`\n * `util-linux \u003e= 235`\n * `skopeo`\n * `python3-librepo`\n\nAt build-time, the following software is required:\n\n * `python-docutils \u003e= 0.13`\n * `pkg-config \u003e= 0.29`\n\nTesting requires additional software:\n\n * `pytest`\n\n## Running locally\n\nThe main binary is safe to run on your development machine with:\n\n    python3 -m osbuild --libdir .\n\nTo build an image:\n\n    python3 -m osbuild --libdir . ./test/data/manifests/fedora-boot.json\n\nEvery osbuild run uses a cache for downloaded files (sources) and, optionally,\ncheckpoints of artifacts built by stages and pipelines. By default, this is\nkept in `.osbuild` (in the current working directory). The location of this\ndirectory can be specified using the `--cache` option.\n\nFor more information about the options and arguments, read [man pages](/docs).\n\n## Build\n\nOsbuild is a python script so it is not compiled.\nTo verify changes made to the code use included makefile rules:\n\n * `make lint` to run linter on top of the code\n * `make test-all` to run base set of tests\n * `sudo make test-run` to run extended set of tests (takes long time)\n\nAlso keep in mind that some tests require those prerequisites,\notherwise they are skipped\n\n```\nsudo dnf install -y systemd-boot-unsigned erofs-utils pykickstart podman xfsprogs\n```\n\n## Installation\n\nInstalling `osbuild` requires to not only install the `osbuild` module, but also\nadditional artifacts such as tools (i.e: `osbuild-mpp`) sources, stages, schemas\nand SELinux policies.\n\nFor this reason, doing an installation from source is not trivial and the easier\nway to install it is to create the set of RPMs that contain all these components.\n\nThis can be done with the `rpm` make target, i.e:\n\n```sh\nsudo dnf builddep osbuild.spec\nmake rpm\n```\n\nA set of RPMs will be created in the `./rpmbuild/RPMS/noarch/` directory and can\nbe installed in the system using the distribution package manager, i.e:\n\n```sh\nsudo dnf install ./rpmbuild/RPMS/noarch/*.rpm\n```\n\n## Repository\n\n - **web**:   https://github.com/osbuild/osbuild\n - **https**: `https://github.com/osbuild/osbuild.git`\n - **ssh**:   `git@github.com:osbuild/osbuild.git`\n\n## License\n\n - **Apache-2.0**\n - See LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosbuild%2Fosbuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosbuild%2Fosbuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosbuild%2Fosbuild/lists"}