Skip to main content

Gentoo Manifest Tool -- a utility to verify and update Manifest files

Project description

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 [1]. 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 commands that could help debugging its behavior. Those are:

gemato hash -H <hashes> [<path>...]

Print hashes of the specified files in Manifest-like format. Used to verify that the hash backend works correctly.

gemato openpgp-verify [-K <key>] [<path>...]

Check OpenPGP signatures embedded in the specified files. Detached signatures are not supported. Used to verify that the OpenPGP backend works correctly.

Requirements

gemato is written in Python and compatible with implementations of Python 3.6+. gemato is currently tested against CPython 3.6 through 3.7 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemato-17.0.tar.gz (84.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gemato-17.0-py3-none-any.whl (43.0 kB view details)

Uploaded Python 3

File details

Details for the file gemato-17.0.tar.gz.

File metadata

  • Download URL: gemato-17.0.tar.gz
  • Upload date:
  • Size: 84.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0rc2

File hashes

Hashes for gemato-17.0.tar.gz
Algorithm Hash digest
SHA256 8b53ecb5e26d585146627c53e7ccf79eb921dc316bb1ee005d1901773b46c3f6
MD5 a9190cf4280408212cd622a57474abb3
BLAKE2b-256 963584ae5fecfc31c75532e36d7f168144974294aedd553b7e466d88ab5494b0

See more details on using hashes here.

File details

Details for the file gemato-17.0-py3-none-any.whl.

File metadata

  • Download URL: gemato-17.0-py3-none-any.whl
  • Upload date:
  • Size: 43.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0rc2

File hashes

Hashes for gemato-17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 78c3a326a2c479b9581041d682f9b166e1eae3b0700007c0d563d0935afab66a
MD5 66cacdb5b69c1ac8f627fadd371a1863
BLAKE2b-256 cb5daed56fa15416a3b2d24c6b46f4e06c2464103aacb3dd2126a7269e485713

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page