ebuildtester


Nameebuildtester JSON
Version 46 PyPI version JSON
download
home_pagehttp://ebuildtester.readthedocs.io/
SummaryA container approach to test a Gentoo package within a clean stage3 container
upload_time2025-07-10 18:39:13
maintainerNone
docs_urlNone
authorNicolas Bock
requires_pythonNone
licenseBSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Introduction
============

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.

.. image:: https://badge.fury.io/py/ebuildtester.svg
    :target: https://badge.fury.io/py/ebuildtester

.. image:: https://readthedocs.org/projects/ebuildtester/badge/?version=latest
   :target: http://ebuildtester.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

.. image:: https://github.com/nicolasbock/ebuildtester/actions/workflows/build.yaml/badge.svg
   :target: https://github.com/nicolasbock/ebuildtester/actions?query=workflow%3Abuild
   :alt: GitHub Actions

.. image:: https://badges.gitter.im/ebuildtester/ebuildtester.svg
   :alt: Join the chat at https://gitter.im/ebuildtester/ebuildtester
   :target: https://gitter.im/ebuildtester/ebuildtester?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

.. image:: https://snapcraft.io/ebuildtester/badge.svg
   :alt: Get it from the Snap Store
   :target: https://snapcraft.io/ebuildtester

Requirements
------------

Using require `Docker <https://wiki.gentoo.org/wiki/Docker>`_ and `FUSE
<https://wiki.gentoo.org/wiki/Filesystem_in_Userspace>`_.

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
<https://docs.docker.com/storage/storagedriver/select-storage-driver/>`__. Refer
to the Docker documentation about `storage drivers
<https://docs.docker.com/storage/storagedriver/>`_ for more information.
Particularly see the list of `options per storage driver
<https://docs.docker.com/engine/reference/commandline/dockerd/#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
<https://docs.docker.com/storage/storagedriver/device-mapper-driver/>`_ storage
driver, specify:

.. code-block:: javascript

   {
     "storage-driver": "devicemapper"
   }

Usage
-----

We are going to assume that the user has a local git clone of the portage tree in

.. code-block:: console

   /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:

.. code-block:: console

   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:

.. code-block:: console

   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:

.. code-block:: toml

    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

            

Raw data

            {
    "_id": null,
    "home_page": "http://ebuildtester.readthedocs.io/",
    "name": "ebuildtester",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Nicolas Bock",
    "author_email": "nicolasbock@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/34/c6/636e809dd10cf1c0603ade652b0853d085b20f7570641a5a181788a4336c/ebuildtester-46.tar.gz",
    "platform": null,
    "description": "Introduction\n============\n\nThis is a tool to test a Gentoo ebuild and its dependencies. The idea is that\nthe ebuild is emerged in a clean (and current) stage3 Docker container.\n\n.. image:: https://badge.fury.io/py/ebuildtester.svg\n    :target: https://badge.fury.io/py/ebuildtester\n\n.. image:: https://readthedocs.org/projects/ebuildtester/badge/?version=latest\n   :target: http://ebuildtester.readthedocs.io/en/latest/?badge=latest\n   :alt: Documentation Status\n\n.. image:: https://github.com/nicolasbock/ebuildtester/actions/workflows/build.yaml/badge.svg\n   :target: https://github.com/nicolasbock/ebuildtester/actions?query=workflow%3Abuild\n   :alt: GitHub Actions\n\n.. image:: https://badges.gitter.im/ebuildtester/ebuildtester.svg\n   :alt: Join the chat at https://gitter.im/ebuildtester/ebuildtester\n   :target: https://gitter.im/ebuildtester/ebuildtester?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\n.. image:: https://snapcraft.io/ebuildtester/badge.svg\n   :alt: Get it from the Snap Store\n   :target: https://snapcraft.io/ebuildtester\n\nRequirements\n------------\n\nUsing require `Docker <https://wiki.gentoo.org/wiki/Docker>`_ and `FUSE\n<https://wiki.gentoo.org/wiki/Filesystem_in_Userspace>`_.\n\nIf you plan to use specific storage driver options (by passing\n``--storage-opt``), be aware that these are specific to the `configured Docker\nstorage driver\n<https://docs.docker.com/storage/storagedriver/select-storage-driver/>`__. Refer\nto the Docker documentation about `storage drivers\n<https://docs.docker.com/storage/storagedriver/>`_ for more information.\nParticularly see the list of `options per storage driver\n<https://docs.docker.com/engine/reference/commandline/dockerd/#options-per-storage-driver>`_.\n\nSystem-wide configuration of the storage driver used by Docker is done in\n``/etc/docker/daemon.json``. For example, to select the `devicemapper\n<https://docs.docker.com/storage/storagedriver/device-mapper-driver/>`_ storage\ndriver, specify:\n\n.. code-block:: javascript\n\n   {\n     \"storage-driver\": \"devicemapper\"\n   }\n\nUsage\n-----\n\nWe are going to assume that the user has a local git clone of the portage tree in\n\n.. code-block:: console\n\n   /usr/local/git/gentoo\n\nWe have added a new ebuild and would like to verify that the build\ndependencies are all correct. We can build the package (ATOM) with:\n\n.. code-block:: console\n\n   ebuildtester --portage-dir /usr/local/git/gentoo \\\n     --atom ATOM \\\n     --use USE1 USE2\n\nwhere we have specified two USE flags, USE1 and USE2. The\n`ebuildtester` command will now create a docker container and start\ninstalling the ATOM. All specified dependencies will be installed as\nwell.\n\n\nCommand line arguments\n----------------------\n\nThe command understands the following command line arguments:\n\n.. code-block:: console\n\n   usage: ebuildtester [-h] [--version] [--atom ATOM [ATOM ...]] [--binhost BINHOST] [--live-ebuild]\n                       [--manual] --portage-dir PORTAGE_DIR [--overlay-dir OVERLAY_DIR] [--update]\n                       [--install-basic-packages] [--threads N] [--use USE [USE ...]]\n                       [--global-use GLOBAL_USE [GLOBAL_USE ...]] [--unmask ATOM] [--unstable]\n                       [--gcc-version VER] [--python-single-target PYTHON_SINGLE_TARGET]\n                       [--python-targets PYTHON_TARGETS] [--rm] [--storage-opt STORAGE_OPT [STORAGE_OPT ...]]\n                       [--with-X] [--with-vnc] [--profile PROFILE] [--features FEATURES [FEATURES ...]]\n                       [--docker-image DOCKER_IMAGE] [--docker-command DOCKER_COMMAND] [--pull]\n                       [--show-options] [--ccache CCACHE_DIR] [--batch]\n\n   A dockerized approach to test a Gentoo package within a clean stage3.\n\n   options:\n     -h, --help            show this help message and exit\n     --version             show program's version number and exit\n     --atom ATOM [ATOM ...]\n                           The package atom(s) to install\n     --binhost BINHOST     Binhost URI\n     --live-ebuild         Unmask the live ebuild of the atom\n     --manual              Install package manually\n     --portage-dir PORTAGE_DIR\n                           The local portage directory\n     --overlay-dir OVERLAY_DIR\n                           Add overlay dir (can be used multiple times)\n     --update              Update container before installing atom\n     --install-basic-packages\n                           Install basic packages after container starts\n     --threads N           Use N (default 8) threads to build packages\n     --use USE [USE ...]   The use flags for the atom\n     --global-use GLOBAL_USE [GLOBAL_USE ...]\n                           Set global USE flag\n     --unmask ATOM         Unmask atom (can be used multiple times)\n     --unstable            Globally 'unstable' system, i.e. ~amd64\n     --gcc-version VER     Use gcc version VER\n     --python-single-target PYTHON_SINGLE_TARGET\n                           Specify a PYTHON_SINGLE_TARGET\n     --python-targets PYTHON_TARGETS\n                           Specify a PYTHON_TARGETS\n     --rm                  Remove container after session is done\n     --storage-opt STORAGE_OPT [STORAGE_OPT ...]\n                           Storage driver options for all volumes (same as Docker param)\n     --with-X              Globally enable the X USE flag\n     --with-vnc            Install VNC server to test graphical applications\n     --profile PROFILE     The profile to use (default = default/linux/amd64/23.0)\n     --features FEATURES [FEATURES ...]\n                           Set FEATURES, see https://wiki.gentoo.org/wiki/FEATURES (default = ['-sandbox',\n                           '-usersandbox', 'userfetch'])\n     --docker-image DOCKER_IMAGE\n                           Specify the docker image to use (default = gentoo/stage3)\n     --docker-command DOCKER_COMMAND\n                           Specify the docker command\n     --pull                Download latest docker image\n     --show-options        Show currently selected options and defaults\n     --ccache CCACHE_DIR   Path to mount that contains ccache cache\n     --batch               Do not drop into interactive shell\n\nIt is also possible to store default values in a toml configuration file at `~/.config/ebuildtester/config.toml`.\nThe next example shows all the configuration options that are currently available:\n\n.. code-block:: toml\n\n    portage_dir = \"/var/db/repos/gentoo\"\n    overlay_dir = [\"/var/db/repos/guru\"]\n\n    features = [\"sandbox\", \"usersandbox\", \"userfetch\"]\n\n    install_basic_packages = false\n    docker_command = \"docker\"\n    unstable = true\n    update = true\n    batch = false\n    pull = true\n    rm = true\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "A container approach to test a Gentoo package within a clean stage3 container",
    "version": "46",
    "project_urls": {
        "Homepage": "http://ebuildtester.readthedocs.io/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e265b17762e8dcd59c21a72f8fe1a4272f59fac285cc224d4bec39cd53b1fa94",
                "md5": "588ab91903d68747917f7b64f2fd9cd6",
                "sha256": "d1d0f33c8b685a4e5c2e0276c28f102982989f868bcf01f6225b60212bb19b27"
            },
            "downloads": -1,
            "filename": "ebuildtester-46-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "588ab91903d68747917f7b64f2fd9cd6",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 13552,
            "upload_time": "2025-07-10T18:39:12",
            "upload_time_iso_8601": "2025-07-10T18:39:12.498618Z",
            "url": "https://files.pythonhosted.org/packages/e2/65/b17762e8dcd59c21a72f8fe1a4272f59fac285cc224d4bec39cd53b1fa94/ebuildtester-46-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "34c6636e809dd10cf1c0603ade652b0853d085b20f7570641a5a181788a4336c",
                "md5": "4d14e86c9ff70d5b1a0928529783d2a3",
                "sha256": "5fe0813da95f4b4963a6fc4dd6b754c5ec7d524e4cfb089837aae38ac166dd4d"
            },
            "downloads": -1,
            "filename": "ebuildtester-46.tar.gz",
            "has_sig": false,
            "md5_digest": "4d14e86c9ff70d5b1a0928529783d2a3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 25157,
            "upload_time": "2025-07-10T18:39:13",
            "upload_time_iso_8601": "2025-07-10T18:39:13.926321Z",
            "url": "https://files.pythonhosted.org/packages/34/c6/636e809dd10cf1c0603ade652b0853d085b20f7570641a5a181788a4336c/ebuildtester-46.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-10 18:39:13",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ebuildtester"
}
        
Elapsed time: 1.00112s