Create .deb files easily using python package metadata
Project description
Debby
Create .deb files easily using python package metadata
Installation
You can install this package with pip.
$ pip install debby
Links
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 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file debby-1.2.1.tar.gz.
File metadata
- Download URL: debby-1.2.1.tar.gz
- Upload date:
- Size: 23.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.5 CPython/3.8.18 Linux/6.5.0-1025-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5c7dcb31021c2d9c4c8a5d113641450fe04b53431934466eb8c2f5c16eb0bb4
|
|
| MD5 |
deb829e6c2cb8e266116423ecdad5816
|
|
| BLAKE2b-256 |
a26cd31c3872d1304b1953cbb086cca28e559a9fc531b23c034e49d5f93bcbdc
|
File details
Details for the file debby-1.2.1-py3-none-any.whl.
File metadata
- Download URL: debby-1.2.1-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.5 CPython/3.8.18 Linux/6.5.0-1025-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c966badab8827a7962ff364d6e35459cee5bc9e30d696ec01a1391a11551529b
|
|
| MD5 |
a0d8464cc2886ac35f86149435088b17
|
|
| BLAKE2b-256 |
9e6ee0b914e272b9705a3689c4532487101e8e40776c375959b3405076df935d
|