1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-12-23 12:56:53 +01:00
trexio/debian/README.md
2022-02-16 18:16:19 +01:00

40 lines
1.6 KiB
Markdown

# Debian packages from Autotools project
Following the [debian guide](https://www.debian.org/doc/manuals/debmake-doc/ch08.en.html#autotools-single).
## Requirements
- debmake
- debuild
- debhelper
- dh-autoreconf
## First release
1. Download and extract the Autotools-produced distribution tarball (e.g. `trexio-2.1.0.tar.gz`)
2. `cp trexio-2.1.0.tar.gz libtrexio_2.1.0.orig.tar.gz` --> important for step 4
3. `cd trexio-2.1.0`
4. `debmake`
This will create `debian` folder with some pre-filled templates, which have to be checked and modified
according to your project (e.g. prepend `lib` for library packages).
## Release updates
This relies on the previously created and modified templates in the `debian` directory.
1. `debuild` --> this creates the debian packages in the parent directory, i.e. one level higher than `trexio-2.1.0/` directory
2. `dpkg -f libtrexio_2.1.0-1_amd64.deb pre-depends depends recommends conflicts break`
**Note for maintainers:** to battle-test your build process, it can be a good idea to run `debuild` in a `chroot` environment
as opposed to the host. For example, `pbuilder` can be used to create an isolated `chroot`
and to build a debian package within it (see `pdebuild` wrapper command).
## Make
TREXIO supplies `make debian_from_dist` rule to produce a `libtrexio` debian package.
It relies on specifications in the `debian/` folder.
This rule should be executed in the source code distribution (extracted from the tarball) and **not in the GitHub repo clone**.
It also requires the tarball distribution (e.g. `trexio-2.1.0.tar.gz`) to be present in the **parent** directory.