Skip to main content

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:

  1. Add the following lines (replace /local-xbstrap at your convenience):
ADD xbstrap /local-xbstrap
RUN pip3 install -e /local-xbstrap
  1. Copy or symlink your local xbstrap into the same folder that contains the Dockerfile, so that it can be accessed by the previous step.
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xbstrap-0.32.1.tar.gz (49.1 kB view details)

Uploaded Source

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

Hashes for xbstrap-0.32.1.tar.gz
Algorithm Hash digest
SHA256 5c8d915ea88b5529b6cee97d85848ca92b4d72d79f55aa90f090c619ca7b61ed
MD5 40c1e10391d5ef984a82286676afff1d
BLAKE2b-256 8536a55f5e3617e06d919564fd6e9fe8c9e1ecf8af0c758aae98983e6468f166

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page