Skip to main content

Gentoo Build Publisher dashboard

Gentoo Build Publisher

Introduction

Gentoo Build Publisher (GBP) is a Gentoo build server, binary package host (binhost), ebuild repo server, and configuration manager in one which uses continuous integration and other tools to deliver successful, consistent "builds" for a single machine or multiple heterogeneous Gentoo machines.

In case you didn't know, Gentoo Linux is a source-based rolling-release meta-distribution that you can twist and mold into pretty much anything you like. That's just a verbose way of saying Gentoo is awesome.

If you run a Gentoo system, say a laptop, you may be updating your system using the standard emerge --sync followed by a world update. This pulls in the latest ebuilds from the Gentoo repo and if there are any updates applicable to your system then they get built on your system.

Except sometimes they don't.

Sometimes builds fail. Sometimes USE flags need to be changed. Sometimes there's an update to a piece of software that is buggy and you want to revert. Sometimes a build takes a long time and you don't want to wait.

Well since Gentoo is the distribution you build yourself, CI/CD seems like a natural fit. Enter Gentoo Build Publisher.

Gentoo Build Publisher combines a repo/overlay server, basic configuration management, and binary package server (binhost) for complete and atomic builds. Successful builds performed by Jenkins are served by GBP where client machines sync from.

"Gentoo" and the Gentoo logo are trademarks of the Gentoo Foundation. This project is not affiliated with or endorsed by the Gentoo Foundation.

Procedure

  • Build a Gentoo Build Publisher instance. Refer to the Install Guide.
  • Create "machines" and "repos" jobs in Jenkins. For example gbp addrepo gentoo https://anongit.gentoo.org/git/repo/gentoo.git; gbp addmachine base https://github.com/enku/gbp-machines.git Use the gbp-machines repo as a starting point. This can also be done manually within the Jenkins UI.
  • Once a Jenkins job has been pulled by Gentoo Build Publisher it can be published so that actual machines can use it (e.g. rsync for repos, http for binpkgs). Use the CLI (gbp publish) to publish a pulled build.
  • If the job fails, it will not be pulled.
  • Your real machine, for example, base, syncs from, rsync://gbp/repos/base/gentoo. You can dynamically acquire the repos.conf file from https://gbp/machines/base/repos.conf and the binrepos.conf from https://gbp/machines/base/binrepos.conf.

Jenkins build

CLI

The command-line interface can inspect, publish, pull, schedule builds and more.

gbpcli screenshot

Plugins

Various plugins exist for Gentoo Build Publisher. Some are "server" plugins, meaning they plug into Gentoo Build Publisher, the server. Others are "client" plugins, meaning they plug into the CLI. And some are both. The following Plugins are available.

Plugin Description Client/Server
archive A plugin to dump and restore builds Both (but only runs on from the server)
feeds Atom/RSS feeds for Gentoo Build Publisher Server
fl A pfl-inspired plugin Both
notifications A plugin that can send notifications when events occur Server
ps A plugin to display your Gentoo Build Publisher processes Both
purge A plugin to purge old builds Server
webhook A webhook for gbp-notifications to display desktop notifications and more Client

Articles

Below are some articles that explain some aspects of Build Publisher in detail.

Metadata

Release files for gentoo-build-publisher 3.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gentoo-build-publisher 3.6.0
File Size Uploaded Provenance Actions
gentoo_build_publisher-3.6.0.tar.gz 153.9 kB Without provenance Details for gentoo_build_publisher-3.6.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for gentoo-build-publisher 3.6.0
File Interpreter ABI Platform Actions
gentoo_build_publisher-3.6.0-py3-none-any.whl Python 3 none any Details for gentoo_build_publisher-3.6.0-py3-none-any.whl

Total release size: 298.0 kB

Release files / gentoo_build_publisher-3.6.0.tar.gz

Download URL gentoo_build_publisher-3.6.0.tar.gz
Size 153.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e0ae03fc450e194502cb15af88c6154176a0750d2d02d5a95a41569001468ab0
BLAKE2b-256 checksum
How to use checksums
09822eeee1c68056ba827224e6f73f15c9dfe89690c1519314136ec6330441b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / gentoo_build_publisher-3.6.0-py3-none-any.whl

Download URL gentoo_build_publisher-3.6.0-py3-none-any.whl
Size 144.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03392b3b6c907f64820cc4172bbce7b5535bf1445df994e43e302975991e0b55
BLAKE2b-256 checksum
How to use checksums
e82523c1fd24594428a94c022c2f08c76ce17fb089c314190c9631c3756553a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Security for gentoo-build-publisher 3.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page