taler-docs

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

reprepro.rst (3512B)


      1 ..
      2   This file is part of GNU TALER.
      3   Copyright (C) 2025 Taler Systems SA
      4 
      5   TALER is free software; you can redistribute it and/or modify it under the
      6   terms of the GNU Affero General Public License as published by the Free Software
      7   Foundation; either version 2.1, or (at your option) any later version.
      8 
      9   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
     10   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.
     12 
     13   You should have received a copy of the GNU Affero General Public License along with
     14   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     15 
     16   @author Christian Grothoff
     17   @author Florian Dold
     18 
     19 Reprepro setup
     20 ==============
     21 
     22 We use a Debian-style workflow with *testing* and *stable* in the same
     23 reprepro setup.  This chapter is **not** about the *nightly* distribution.
     24 The ``deb.taler.net`` site is pointed to a directory of the
     25 ``taler-packaging`` user where under ``www/apt`` we have a subdirectory per
     26 supported distribution, right now we have one for Debian and one for Ubuntu.
     27 
     28 Systems should use:
     29 
     30   - `deb https://deb.taler.net/apt/debian trixie main` for stable
     31   - `deb https://deb.taler.net/apt/debian trixie-testing main` for testing
     32 
     33 or equivalent for Ubuntu noble.
     34 
     35 
     36 Distribution file structure
     37 ---------------------------
     38 
     39 In ``conf/distributions`` we list the supported distributions,
     40 each with a ``testing`` and a ``stable`` suite:
     41 
     42 .. code-block::
     43   :caption: conf/distributions
     44 
     45   Origin: GNU Taler
     46   Label: Taler
     47   Suite: testing
     48   Codename: trixie-testing
     49   Architectures: amd64
     50   Components: main
     51   Description: GNU Taler testing packages for Debian trixie
     52   SignWith: your-gpg-key-id
     53 
     54   Origin: GNU Taler
     55   Label: Taler
     56   Suite: stable
     57   Codename: trixie
     58   Architectures: amd64
     59   Components: main
     60   Description: GNU Taler stable packages for Debian trixie
     61   SignWith: your-gpg-key-id
     62   Pull: trixie-testing-to-stable
     63 
     64 The ``pull`` rule is elaborated in ``conf/pulls``, and it
     65 defines how packages move from testing to stable. We basically
     66 simply move everything at once (after testing it!):
     67 
     68 .. code-block::
     69   :caption: conf/pulls
     70 
     71   Name: trixie-testing-to-stable
     72   From: trixie-testing
     73   Components: main
     74   Architectures: amd64
     75   UDebComponents:
     76   FilterFormula: Package (% * )
     77 
     78 If we in the future wanted to only pull packages that have been in
     79 testing for at least 10 days, we could use:
     80 
     81 .. code-block::
     82 
     83   FilterFormula: Package (% *), Version (% *), $Date (>= now - 10 days)
     84 
     85 
     86 The ``conf/options`` file used is mainly giving the path:
     87 
     88 .. code-block::
     89   :caption: conf/options
     90 
     91   verbose
     92   basedir /home/taler-packaging/www/apt/debian
     93   ask-passphrase
     94 
     95 
     96 taler-pkg
     97 ---------
     98 
     99 The ``taler-pkg`` tool from ``taler-deployment.git/packaging/ng``
    100 is used to both build packages (via podman containers) and upload them
    101 to ``deb.taler.net``.
    102 
    103 Building packages:
    104 
    105 .. code::
    106 
    107    $ ./taler-pkg build $TARGET
    108 
    109 where target is of the form ``$VENDOR-$CODENAME``. For example, ``debian-trixie`` or ``ubuntu-noble``.
    110 
    111 Publishing packages:
    112 
    113 .. code::
    114 
    115    $ ./taler-pkg publish $TARGET
    116 
    117 Publishing packages only publishes them to the ``-testing`` distro.
    118 
    119 Promoting packages:
    120 
    121 .. code::
    122 
    123    $ ./taler-pkg promote $TARGET --dry
    124    $ ./taler-pkg promote $TARGET
    125 
    126 To show which packages are currently available, use:
    127 
    128 
    129 .. code::
    130 
    131    $ ./taler-pkg show-published debian-trixie-testing
    132    $ ./taler-pkg show-published debian-trixie