commit c8bfd0757062309790efb488f7daac7be38ff7c1
parent 727eab1684485e1cc668e4f4c90ce95072cfe5e0
Author: Christian Grothoff <christian@grothoff.org>
Date: Tue, 5 Aug 2025 17:16:51 +0200
document reprepro setup
Diffstat:
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)