13.14. Reprepro setup#
We use a Debian-style workflow with testing and stable in the same
reprepro setup. This chapter is not about the nightly distribution.
The deb.taler.net
site is pointed to a directory of the
taler-packaging
user where under www/apt
we have a subdirectory per
supported distribution, right now we have one for Debian and one for Ubuntu.
Systems should use:
deb https://deb.taler.net/apt/debian bookworm main for stable
deb https://deb.taler.net/apt/debian bookworm-testing main for testing
or equivalent for Ubuntu noble.
13.14.1. Distribution file structure#
In conf/distributions
we list the supported distributions,
each with a testing
and a stable
suite:
Origin: GNU Taler
Label: Taler
Suite: testing
Codename: bookworm-testing
Architectures: amd64
Components: main
Description: GNU Taler testing packages for Debian Bookworm
SignWith: your-gpg-key-id
Origin: GNU Taler
Label: Taler
Suite: stable
Codename: bookworm
Architectures: amd64
Components: main
Description: GNU Taler stable packages for Debian Bookworm
SignWith: your-gpg-key-id
Pull: bookworm-testing-to-stable
The pull
rule is elaborated in conf/pulls
, and it
defines how packages move from testing to stable. We basically
simply move everything at once (after testing it!):
Name: bookworm-testing-to-stable
From: bookworm-testing
Components: main
Architectures: amd64
UDebComponents:
FilterFormula: Package (% package-name-pattern )
If we in the future wanted to only pull packages that have been in testing for at least 10 days, we could use:
FilterFormula: Package (% *), Version (% *), $Date (>= now - 10 days)
The conf/options
file used is mainly giving the path:
verbose
basedir /home/taler-packaging/www/apt/debian
ask-passphrase
13.14.2. Shell scripts#
We install various simple shell scripts in the taler-packaging
HOME
directory to call reprepro. They are maintained in the
taler-deployment.git
under packaging/ng/server-side
.
The following shell scripts are used to manage the system:
include-$DISTRO-$RELEASE.sh
imports new packages from the respective origin directory into testingpromote-$DISTRO-$RELEASE.sh
promotes packages from testing to stable for the respective distributionshow-$DISTRO-$RELEASE.sh
shows all packages from the respective distributionexport-$DISTRO-$RELEASE.sh
scripts export the respective distributions (this is mostly useful after errors)