debpkgr
Pure Python implementation of Debian/Ubuntu packaging and repository utilities.
The allows one to perform various Debian-specific operations on non-Debian systems, in the absence of typical system-provided utilities (e.g. apt).
Example
Inspect Package
from debpkgr.debpkg import DebPkg
pkg = DebPkg.from_file('/path/to/foo.deb')
print(pkg.name)
print(pkg.nevra)
print(pkg.md5sum)
print(pkg.package)
Create Repo
from debpkgr.aptrepo import create_repo
name = 'test_repo_foo'
arches = ['amd64', 'i386']
description = 'Apt repository for Test Repo Foo'
files = []
for root, _, fl in os.walk(temp_dir):
for f in fl:
if f.endswith('.deb'):
files.append(os.path.join(root, f))
repo = create_repo(self.new_repo_dir, files, name=name,
arches=arches, desc=description)
Signature Support
It is possible to sign the repository metadata using a wrapper script / executable around GPG or another GPG-signing facility (like a [Hardware Security Module](https://en.wikipedia.org/wiki/Hardware_security_module).
To do so, you will need to pass a SignOptions object to the lower-level AptRepo class as the gpg_sign_options argument:
gpg_sign_options = SignOptions(cmd="/usr/local/bin/sign.sh",
key_id="45BA0816")
repo = AptRepo(repo_dir, repo_name,
gpg_sign_options=gpg_sign_options)
The supplied sign command has to be an executable.
It will be supplied the path to a Release file to be signed, and is expected to produce a file named Release.gpg in the same directory as the Release file.
Additionally, the sign command will be passed the following environment variables:
GPG_CMD
GPG_KEY_ID (if specified in the configuration file)
GPG_REPOSITORY_NAME
GPG_DIST
The sign command may decide on a key ID to use, based on the repository name or the dist that is being signed.
A minimal sign command using GPG could be:
#!/bin/bash -e
KEYID=${GPG_KEY_ID:-45BA0816}
gpg --homedir /var/lib/debpkgr/gpg-home \
--detach-sign --default-key $KEYID \
--armor --output ${1}.gpg ${1}
You could import your password-less GPG keys like this:
mkdir /var/lib/debpkgr/gpg-home
chmod 0700 /var/lib/debpkgr/gpg-home
gpg --homedir /var/lib/debpkgr/gpg-home --import <path-to-secret-keys>
Metadata
Release files for debpkgr 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| debpkgr-1.1.0.tar.gz | 53.6 kB | Without provenance | Details |
Release files / debpkgr-1.1.0.tar.gz
| Download URL | debpkgr-1.1.0.tar.gz |
|---|---|
| Size | 53.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ec8531332464aee52048f0669e6bdaf186823408199909a1fefb3d34120906e
|
|
BLAKE2b-256 checksum How to use checksums |
72628787cd98e2251c0e1cd9d8e9132c3d4c5b19e71745f5af30e2238571916e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for debpkgr 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.