2022-02-16 16:55:27 +01:00
|
|
|
|
|
|
|
# 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`)
|
2022-02-16 18:16:19 +01:00
|
|
|
2. `cp trexio-2.1.0.tar.gz libtrexio_2.1.0.orig.tar.gz` --> important for step 4
|
2022-02-16 16:55:27 +01:00
|
|
|
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`
|
2022-02-16 18:16:19 +01:00
|
|
|
|
|
|
|
**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.
|