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:

conf/distributions#
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!):

conf/pulls#
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:

conf/options#
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