gemato


Namegemato JSON
Version 20.6 PyPI version JSON
download
home_pageNone
SummaryGentoo Manifest Tool -- a utility to verify and update Manifest files
upload_time2024-06-17 12:23:19
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/b7/03/409d9d5578e8cf9bb6aea43d12faa882bfec213101ed24676c98a0d7b93e/gemato-20.6.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.6",
    "project_urls": {
        "Homepage": "https://github.com/mgorny/gemato/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b43b978d77aee2f5207c7aa6f2178f5a52af4fe652d2317b0fd525cbeea016fe",
                "md5": "3b77eaaf957f4d65097d04a91a9f9917",
                "sha256": "4c9217d0efe5d7ef23662c686e6e86172a3efff5fd69d5b11cc053179b77ee0a"
            },
            "downloads": -1,
            "filename": "gemato-20.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3b77eaaf957f4d65097d04a91a9f9917",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 51634,
            "upload_time": "2024-06-17T12:23:16",
            "upload_time_iso_8601": "2024-06-17T12:23:16.570560Z",
            "url": "https://files.pythonhosted.org/packages/b4/3b/978d77aee2f5207c7aa6f2178f5a52af4fe652d2317b0fd525cbeea016fe/gemato-20.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b703409d9d5578e8cf9bb6aea43d12faa882bfec213101ed24676c98a0d7b93e",
                "md5": "adad364958459a0bea3020cdd086ebd2",
                "sha256": "c63d3dfb707cd71b6c3531b82da29e126584627848ef62b28fbb16790ce3c559"
            },
            "downloads": -1,
            "filename": "gemato-20.6.tar.gz",
            "has_sig": false,
            "md5_digest": "adad364958459a0bea3020cdd086ebd2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 87376,
            "upload_time": "2024-06-17T12:23:19",
            "upload_time_iso_8601": "2024-06-17T12:23:19.146229Z",
            "url": "https://files.pythonhosted.org/packages/b7/03/409d9d5578e8cf9bb6aea43d12faa882bfec213101ed24676c98a0d7b93e/gemato-20.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-17 12:23:19",
    "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: 0.26215s