taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit c8bfd0757062309790efb488f7daac7be38ff7c1
parent 727eab1684485e1cc668e4f4c90ce95072cfe5e0
Author: Christian Grothoff <christian@grothoff.org>
Date:   Tue,  5 Aug 2025 17:16:51 +0200

document reprepro setup

Diffstat:
Msystem-administration/index.rst | 1+
Asystem-administration/reprepro.rst | 114+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 115 insertions(+), 0 deletions(-)

diff --git a/system-administration/index.rst b/system-administration/index.rst @@ -35,3 +35,4 @@ System Administration Manual grafana-loki grafana-promtail grafana-backup + reprepro diff --git a/system-administration/reprepro.rst b/system-administration/reprepro.rst @@ -0,0 +1,114 @@ +.. + This file is part of GNU TALER. + Copyright (C) 2025 Taler Systems SA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 2.1, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with + TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + + @author Christian Grothoff + +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. + + +Distribution file structure +--------------------------- + +In ``conf/distributions`` we list the supported distributions, +each with a ``testing`` and a ``stable`` suite: + +.. code-block:: + :caption: 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!): + +.. code-block:: + :caption: conf/pulls + + 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: + +.. code-block:: + + FilterFormula: Package (% *), Version (% *), $Date (>= now - 10 days) + + +The ``conf/options`` file used is mainly giving the path: + +.. code-block:: + :caption: conf/options + + verbose + basedir /home/taler-packaging/www/apt/debian + ask-passphrase + + +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 *testing* + +* ``promote-$DISTRO-$RELEASE.sh`` promotes packages from *testing* + to *stable* for the respective distribution + +* ``show-$DISTRO-$RELEASE.sh`` shows all packages from the + respective distribution + +* ``export-$DISTRO-$RELEASE.sh`` scripts export the respective distributions + (this is mostly useful after errors)