gemato


Namegemato JSON
Version 20.9 PyPI version JSON
download
home_pageNone
SummaryGentoo Manifest Tool -- a utility to verify and update Manifest files
upload_time2025-10-25 04:48:14
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            ==================================
  gemato -- Gentoo Manifest Tool
==================================
:Author: Michał Górny
:License: 2-clause BSD license


Introduction
============
gemato provides a reference implementation of the full-tree Manifest
checks as specified in GLEP 74 [#GLEP74]_. Originally focused
on verifying the integrity and authenticity of the Gentoo ebuild
repository, the tool can be used as a generic checksumming tool
for any directory trees.


Usage
=====

Verification
------------
The basic purpose of gemato is to verify a directory tree against
Manifest files. In order to do that, run the ``gemato verify`` tool
against the requested directory::

    gemato verify /var/db/repos/gentoo

The tool will automatically locate the top-level Manifest (if any)
and check the specified directory recursively. If a subdirectory
of the Manifest tree is specified, only the specified leaf is checked.


Creating new Manifest tree
--------------------------
Creating a new Manifest tree can be accomplished using the ``gemato
create`` command against the top directory of the new Manifest tree::

    gemato create -p ebuild /var/db/repos/gentoo

Note that for the ``create`` command you always need to specify either
a profile (via ``-p``) or at least a hash set (via ``-H``).


Updating existing Manifests
---------------------------
The ``gemato update`` command is provided to update an existing Manifest
tree::

    gemato update -p ebuild /var/db/repos/gentoo

Alike ``create``, ``update`` also requires specifying a profile (``-p``)
or a hash set (``-H``). The command locates the appropriate top-level
Manifest and updates the specified directory recursively.
If a subdirectory of the Manifest tree is specified, the entries
for the specified leaf and respective Manifest files are updated.


Utility commands
----------------
gemato provides a few other utility commands that provide access to
its crypto backend. These are:

``gemato hash -H <hashes> [<path>...]``
  Print hashes of the specified files in Manifest-like format.

``gemato openpgp-verify [-K <key>] [<path>...]``
  Check OpenPGP cleartext signatures embedded in the specified files.

``gemato openpgp-verify-detached [-K <key>] <sig-file> <data-file>``
  Verify the specified data file against a detached OpenPGP signature.


Requirements
============
gemato is written in Python and compatible with implementations
of Python 3.9+. gemato is currently tested against CPython 3.9
through 3.11 and PyPy3.  gemato core depends only on standard Python
library modules.

Additionally, OpenPGP requires system install of GnuPG 2.2+
and requests_ Python module.  Tests require pytest_, and responses_
for mocking.


References and footnotes
========================
.. [#GLEP74] GLEP 74: Full-tree verification using Manifest files
   (https://www.gentoo.org/glep/glep-0074.html)

.. _requests: https://2.python-requests.org/en/master/
.. _pytest: https://docs.pytest.org/en/stable/
.. _responses: https://github.com/getsentry/responses


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "gemato",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "Micha\u0142 G\u00f3rny <mgorny@gentoo.org>",
    "download_url": "https://files.pythonhosted.org/packages/be/d5/92895275a0b441745d9eb8cde4c68ed6ac9fdc7e0e9af602ed7a4c727973/gemato-20.9.tar.gz",
    "platform": null,
    "description": "==================================\n  gemato -- Gentoo Manifest Tool\n==================================\n:Author: Micha\u0142 G\u00f3rny\n:License: 2-clause BSD license\n\n\nIntroduction\n============\ngemato provides a reference implementation of the full-tree Manifest\nchecks as specified in GLEP 74 [#GLEP74]_. Originally focused\non verifying the integrity and authenticity of the Gentoo ebuild\nrepository, the tool can be used as a generic checksumming tool\nfor any directory trees.\n\n\nUsage\n=====\n\nVerification\n------------\nThe basic purpose of gemato is to verify a directory tree against\nManifest files. In order to do that, run the ``gemato verify`` tool\nagainst the requested directory::\n\n    gemato verify /var/db/repos/gentoo\n\nThe tool will automatically locate the top-level Manifest (if any)\nand check the specified directory recursively. If a subdirectory\nof the Manifest tree is specified, only the specified leaf is checked.\n\n\nCreating new Manifest tree\n--------------------------\nCreating a new Manifest tree can be accomplished using the ``gemato\ncreate`` command against the top directory of the new Manifest tree::\n\n    gemato create -p ebuild /var/db/repos/gentoo\n\nNote that for the ``create`` command you always need to specify either\na profile (via ``-p``) or at least a hash set (via ``-H``).\n\n\nUpdating existing Manifests\n---------------------------\nThe ``gemato update`` command is provided to update an existing Manifest\ntree::\n\n    gemato update -p ebuild /var/db/repos/gentoo\n\nAlike ``create``, ``update`` also requires specifying a profile (``-p``)\nor a hash set (``-H``). The command locates the appropriate top-level\nManifest and updates the specified directory recursively.\nIf a subdirectory of the Manifest tree is specified, the entries\nfor the specified leaf and respective Manifest files are updated.\n\n\nUtility commands\n----------------\ngemato provides a few other utility commands that provide access to\nits crypto backend. These are:\n\n``gemato hash -H <hashes> [<path>...]``\n  Print hashes of the specified files in Manifest-like format.\n\n``gemato openpgp-verify [-K <key>] [<path>...]``\n  Check OpenPGP cleartext signatures embedded in the specified files.\n\n``gemato openpgp-verify-detached [-K <key>] <sig-file> <data-file>``\n  Verify the specified data file against a detached OpenPGP signature.\n\n\nRequirements\n============\ngemato is written in Python and compatible with implementations\nof Python 3.9+. gemato is currently tested against CPython 3.9\nthrough 3.11 and PyPy3.  gemato core depends only on standard Python\nlibrary modules.\n\nAdditionally, OpenPGP requires system install of GnuPG 2.2+\nand requests_ Python module.  Tests require pytest_, and responses_\nfor mocking.\n\n\nReferences and footnotes\n========================\n.. [#GLEP74] GLEP 74: Full-tree verification using Manifest files\n   (https://www.gentoo.org/glep/glep-0074.html)\n\n.. _requests: https://2.python-requests.org/en/master/\n.. _pytest: https://docs.pytest.org/en/stable/\n.. _responses: https://github.com/getsentry/responses\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Gentoo Manifest Tool -- a utility to verify and update Manifest files",
    "version": "20.9",
    "project_urls": {
        "Homepage": "https://github.com/mgorny/gemato/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "18e54bfe7f9e276b2664d20994a95cdec1c8b2545945736dea8c054bb0958ef5",
                "md5": "fba7a2c0610b246c13b0dc320e60156a",
                "sha256": "b6285cfa6bb9ab5a6dd679661c3a25240d47130a1bd864837411c1c1d0fe4625"
            },
            "downloads": -1,
            "filename": "gemato-20.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fba7a2c0610b246c13b0dc320e60156a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 52055,
            "upload_time": "2025-10-25T04:48:12",
            "upload_time_iso_8601": "2025-10-25T04:48:12.533726Z",
            "url": "https://files.pythonhosted.org/packages/18/e5/4bfe7f9e276b2664d20994a95cdec1c8b2545945736dea8c054bb0958ef5/gemato-20.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bed592895275a0b441745d9eb8cde4c68ed6ac9fdc7e0e9af602ed7a4c727973",
                "md5": "8b78e8e39a1c7962b9ef0fec2849a02c",
                "sha256": "cd4245d9c0705cdb4972736f3a2adfcb2cc29483f28d48d9c4e0126e473f1ca9"
            },
            "downloads": -1,
            "filename": "gemato-20.9.tar.gz",
            "has_sig": false,
            "md5_digest": "8b78e8e39a1c7962b9ef0fec2849a02c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 93712,
            "upload_time": "2025-10-25T04:48:14",
            "upload_time_iso_8601": "2025-10-25T04:48:14.247760Z",
            "url": "https://files.pythonhosted.org/packages/be/d5/92895275a0b441745d9eb8cde4c68ed6ac9fdc7e0e9af602ed7a4c727973/gemato-20.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-25 04:48:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mgorny",
    "github_project": "gemato",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "gemato"
}
        
Elapsed time: 1.21535s