Skip to main content

Debby

Create .deb files easily using python package metadata

Installation

You can install this package with pip.

$ pip install debby

Links

Documentation

Source Code - GitHub

PyPI - debby

Usage

This tool creates the directory structure (including the control file) to then create a .deb package with dpkg-deb.

You may provide a template for the control file (see Control File Template) or provide the metadata directly via the command line or environment variables.

You may also provide files to include in the package with -f/--file option, which may be passed multiple times.

You may also provide a source for the metadata (see Metadata Sources). You can also specify specific metadata values via the command line. If no metadata source is provided, and all the required metadata is not provided via the command line, an error will be raised.

OUT_DIR=$(debby -f path/to/binary /usr/bin/binary -f path/to/config /etc/config --pyproject pyproject.toml)
dpkg-deb --build $OUT_DIR

Scripts

You may provide installation scripts with --preinst, --postinst, --prerm, and --postrm. These scripts will be included in the package and run before and after installation and removal of the package.

Using a script flag without a path is equivalent to providing a path to a script in the current directory with the same name as the flag. For example, --preinst is equivalent to --preinst ./preinst.

Alternatively, you may directly provide commands to run at the appropriate stage with --preinst-cmd, --postinst-cmd, --prerm-cmd, and --postrm-cmd. An appropriate script will be generated and included in the package. For example, --preinst-cmd 'echo hello' --preinst-cmd 'echo world' will generate a script that runs echo hello and echo world in sequence as the pre-installation script.

Metadata Sources

Currently, the following metadata sources are supported:

  • --pyproject: Reads the metadata from the given pyproject.toml file, according to the PEP 621 specification.
  • --poetry: Reads the metadata from the given pyproject.toml file, according to Poetry's specification.

Control File Template

It is possible to provide a template for the control file with -t/--template path/to/control.template. If provided, this template will be used to generate the control file instead of creating one from scratch. The template should be a text file with the following allowed placeholders.

Placeholder Description Examples
{meta.name} The name of the package debby
{meta.source} The source of the package debby
{meta.version} The version of the package 0.1.0
{meta.section} The section of the package misc, python
{meta.priority} The priority of the package optional
{meta.architecture} The architecture of the package all
{meta.eessential} The essential status of the package yes, no
{meta.maintainer} The maintainer of the package Abraham Murciano <abrahammurciano@gmail.com>
{meta.description} The description of the package Create .deb files easily using python package metadata
{meta.homepage} The homepage of the package https://abrahammurciano.github.io/debby/debby
{meta.depends} The dependencies of the package python3, jq, pv (>= 1.0.0)
{meta.recommends} The recommended packages of the package jq, pv (>= 1.0.0)
{meta.suggests} The suggested packages of the package jq, pv (>= 1.0.0)
{meta.enhances} The enhanced packages of the package jq, pv (>= 1.0.0)
{meta.breaks} The packages that this package breaks jq, pv (>= 1.0.0)
{meta.conflicts} The packages that this package conflicts with jq, pv (>= 1.0.0)
{files.total_size} The total size of all the files given with the -f/--file option 123456

Download files

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

Source Distribution

debby-1.2.3.tar.gz (53.4 kB view details)

Uploaded Source

Built Distribution

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

debby-1.2.3-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file debby-1.2.3.tar.gz.

File metadata

  • Download URL: debby-1.2.3.tar.gz
  • Upload date:
  • Size: 53.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for debby-1.2.3.tar.gz
Algorithm Hash digest
SHA256 0ae371e6f4038759bcf50cb5b233f12e0561a2edc11286d508fbf086e8b9586d
MD5 b76668b658aa37005b37c22c649b9ed7
BLAKE2b-256 349cc009ce530f67e2788b120424c625089f7a27093490c0a8369713f7af3462

See more details on using hashes here.

File details

Details for the file debby-1.2.3-py3-none-any.whl.

File metadata

  • Download URL: debby-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for debby-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 be69d2d0bb072d48baf567f2411cae81cd615b6f78c1f4ec10ed7e02466dfd88
MD5 dbefaa0ebf5fb9115d8627ce027f3ab8
BLAKE2b-256 d1a5fce336c98c005ff91c260a02393b6db9d4038c1443115daaf16be75d9bb0

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 Sentry Error logging StatusPage Status page