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 (% * )
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. taler-pkg#
The taler-pkg
tool from taler-deployment.git/packaging/ng
is used to both build packages (via podman containers) and upload them
to deb.taler.net
.
Building packages:
$ ./taler-pkg build $TARGET
where target is of the form $VENDOR-$CODENAME
. For example, debian-trixie
or ubuntu-noble
.
Publishing packages:
$ ./taler-pkg publish $TARGET
Publishing packages only publishes them to the -testing
distro.
Promoting packages:
$ ./taler-pkg promote $TARGET --dry
$ ./taler-pkg promote $TARGET
To show which packages are currently available, use:
$ ./taler-pkg show-published debian-trixie-testing
$ ./taler-pkg show-published debian-trixie