No project description provided
Project description
xbstrap: Build system for OS distributions
xbstrap is a build system designed to build "distributions" consisting of multiple (usually many) packages.
It does not replace neither make
and ninja
nor autoconf
, automake
, meson
or cmake
and similar utilities.
Instead, xbstrap is intended to invoke those build systems in the correct order, while respecting inter-package dependencies.
Official Discord server: https://discord.gg/7WB6Ur3
Installation
xbstrap is available from PyPI. To install it using pip, use:
pip3 install xbstrap
Basic usage
See the boostrap-managarm repository for an example bootstrap.yml
file.
Installing all tools (that run on the build system) is done using:
xbstrap install-tool --all
Installing all packages to a sysroot (of the host system):
xbstrap install --all
It is often useful to rebuild specific packages. Rebuilding package foobar
can be done by:
xbstrap install --rebuild foobar
If the configure
script shall be run again, use instead:
xbstrap install --reconfigure foobar
Local development
When developing xbstrap
, you must install your local copy instead of the one provided by the pip
repositories. To do this, run:
pip install --user -e .
Development with Docker
For containerized builds, most xbstrap
commands will run in two stages: once on the host, then again on the container to
actually execute the build steps. Therefore, installing xbstrap
locally (as shown above) is not sufficient in this case.
In addition, you must change your Dockerfile
so that instead of grabbing xbstrap
from the pip
repositories, it installs from the host:
- Add the following lines (replace
/local-xbstrap
at your convenience):
ADD xbstrap /local-xbstrap
RUN pip3 install -e /local-xbstrap
- Copy or symlink your local
xbstrap
into the same folder that contains theDockerfile
, so that it can be accessed by the previous step. - Rebuild the docker container as usual.
Enabling the pre-commit hook for linting (optional)
To avoid running into the CI complaining about formatting, linting can be done in a pre-commit hook. To enable this, run:
git config core.hooksPath .githooks
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file xbstrap-0.32.1.tar.gz
.
File metadata
- Download URL: xbstrap-0.32.1.tar.gz
- Upload date:
- Size: 49.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c8d915ea88b5529b6cee97d85848ca92b4d72d79f55aa90f090c619ca7b61ed |
|
MD5 | 40c1e10391d5ef984a82286676afff1d |
|
BLAKE2b-256 | 8536a55f5e3617e06d919564fd6e9fe8c9e1ecf8af0c758aae98983e6468f166 |