A container approach to test a Gentoo package within a clean stage3 container
Project description
This is a tool to test a Gentoo ebuild and its dependencies. The idea is that the ebuild is emerged in a clean (and current) stage3 Docker container.
Requirements
Using require Docker and FUSE.
If you plan to use specific storage driver options (by passing --storage-opt), be aware that these are specific to the configured Docker storage driver. Refer to the Docker documentation about storage drivers for more information. Particularly see the list of options per storage driver.
System-wide configuration of the storage driver used by Docker is done in /etc/docker/daemon.json. For example, to select the devicemapper storage driver, specify:
{
"storage-driver": "devicemapper"
}
Usage
We are going to assume that the user has a local git clone of the portage tree in
/usr/local/git/gentoo
We have added a new ebuild and would like to verify that the build dependencies are all correct. We can build the package (ATOM) with:
ebuildtester --portage-dir /usr/local/git/gentoo \
--atom ATOM \
--use USE1 USE2
where we have specified two USE flags, USE1 and USE2. The ebuildtester command will now create a docker container and start installing the ATOM. All specified dependencies will be installed as well.
Command line arguments
The command understands the following command line arguments:
usage: ebuildtester [-h] [--version] [--atom ATOM [ATOM ...]] [--binhost BINHOST] [--live-ebuild]
[--manual] --portage-dir PORTAGE_DIR [--overlay-dir OVERLAY_DIR] [--update]
[--install-basic-packages] [--threads N] [--use USE [USE ...]]
[--global-use GLOBAL_USE [GLOBAL_USE ...]] [--unmask ATOM] [--unstable]
[--gcc-version VER] [--python-single-target PYTHON_SINGLE_TARGET]
[--python-targets PYTHON_TARGETS] [--rm] [--storage-opt STORAGE_OPT [STORAGE_OPT ...]]
[--with-X] [--with-vnc] [--profile PROFILE] [--features FEATURES [FEATURES ...]]
[--docker-image DOCKER_IMAGE] [--docker-command DOCKER_COMMAND] [--pull]
[--show-options] [--ccache CCACHE_DIR] [--batch]
A dockerized approach to test a Gentoo package within a clean stage3.
options:
-h, --help show this help message and exit
--version show program's version number and exit
--atom ATOM [ATOM ...]
The package atom(s) to install
--binhost BINHOST Binhost URI
--live-ebuild Unmask the live ebuild of the atom
--manual Install package manually
--portage-dir PORTAGE_DIR
The local portage directory
--overlay-dir OVERLAY_DIR
Add overlay dir (can be used multiple times)
--update Update container before installing atom
--install-basic-packages
Install basic packages after container starts
--threads N Use N (default 8) threads to build packages
--use USE [USE ...] The use flags for the atom
--global-use GLOBAL_USE [GLOBAL_USE ...]
Set global USE flag
--unmask ATOM Unmask atom (can be used multiple times)
--unstable Globally 'unstable' system, i.e. ~amd64
--gcc-version VER Use gcc version VER
--python-single-target PYTHON_SINGLE_TARGET
Specify a PYTHON_SINGLE_TARGET
--python-targets PYTHON_TARGETS
Specify a PYTHON_TARGETS
--rm Remove container after session is done
--storage-opt STORAGE_OPT [STORAGE_OPT ...]
Storage driver options for all volumes (same as Docker param)
--with-X Globally enable the X USE flag
--with-vnc Install VNC server to test graphical applications
--profile PROFILE The profile to use (default = default/linux/amd64/23.0)
--features FEATURES [FEATURES ...]
Set FEATURES, see https://wiki.gentoo.org/wiki/FEATURES (default = ['-sandbox',
'-usersandbox', 'userfetch'])
--docker-image DOCKER_IMAGE
Specify the docker image to use (default = gentoo/stage3)
--docker-command DOCKER_COMMAND
Specify the docker command
--pull Download latest docker image
--show-options Show currently selected options and defaults
--ccache CCACHE_DIR Path to mount that contains ccache cache
--batch Do not drop into interactive shell
It is also possible to store default values in a toml configuration file at ~/.config/ebuildtester/config.toml. The next example shows all the configuration options that are currently available:
portage_dir = "/var/db/repos/gentoo"
overlay_dir = ["/var/db/repos/guru"]
features = ["sandbox", "usersandbox", "userfetch"]
install_basic_packages = false
docker_command = "docker"
unstable = true
update = true
batch = false
pull = true
rm = true
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ebuildtester-47.tar.gz.
File metadata
- Download URL: ebuildtester-47.tar.gz
- Upload date:
- Size: 82.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4b550041f59643a97e2a6f9c90772e8e45974ca1be0168c3655350f2fe5942a
|
|
| MD5 |
72e2af1fe579f94a05593d21021a9497
|
|
| BLAKE2b-256 |
19933256c86292d4682fe23c4f213cee4686b45df5f3642446d4ce68ae3e4a7c
|
Provenance
The following attestation bundles were made for ebuildtester-47.tar.gz:
Publisher:
publish.yaml on nicolasbock/ebuildtester
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ebuildtester-47.tar.gz -
Subject digest:
a4b550041f59643a97e2a6f9c90772e8e45974ca1be0168c3655350f2fe5942a - Sigstore transparency entry: 270674204
- Sigstore integration time:
-
Permalink:
nicolasbock/ebuildtester@c2837422f2b9136d9533a295aa50e5de119bb7bd -
Branch / Tag:
refs/tags/v47 - Owner: https://github.com/nicolasbock
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@c2837422f2b9136d9533a295aa50e5de119bb7bd -
Trigger Event:
push
-
Statement type:
File details
Details for the file ebuildtester-47-py2.py3-none-any.whl.
File metadata
- Download URL: ebuildtester-47-py2.py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15833bee7d67fbe91d27c1366efe49b5d3ebc9906f314a73559c34a44548cd12
|
|
| MD5 |
d2f66e664e75d9babf75592b7cf3cf35
|
|
| BLAKE2b-256 |
a501019beb0bb436c4cef2bb9dcaf134a50dc5973d72d596c9b93c910995f6c2
|
Provenance
The following attestation bundles were made for ebuildtester-47-py2.py3-none-any.whl:
Publisher:
publish.yaml on nicolasbock/ebuildtester
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ebuildtester-47-py2.py3-none-any.whl -
Subject digest:
15833bee7d67fbe91d27c1366efe49b5d3ebc9906f314a73559c34a44548cd12 - Sigstore transparency entry: 270674210
- Sigstore integration time:
-
Permalink:
nicolasbock/ebuildtester@c2837422f2b9136d9533a295aa50e5de119bb7bd -
Branch / Tag:
refs/tags/v47 - Owner: https://github.com/nicolasbock
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@c2837422f2b9136d9533a295aa50e5de119bb7bd -
Trigger Event:
push
-
Statement type: