taler-deployment

Deployment scripts and configuration files
Log | Files | Refs | README

README.md (2495B)


      1 # MHD2 Debian overlay
      2 
      3 This overlay follows the adjacent `libmicrohttpd` packaging layout. It builds
      4 the separate MHD2 library; it does not replace Debian's MHD1 packages.
      5 `source.conf` pins upstream tag `2m2` to its reviewed commit. The Debian version
      6 is maintained in `debian/changelog`; change it whenever the source pin or
      7 packaging changes. The pin is checked before building.
      8 
      9 The tag is not a supported SemVer release tag, so this package uses the dedicated
     10 `buildbot/libmicrohttpd2/build.sh` wrapper, not the normal `taler-pkg` tag/version
     11 conversion. The wrapper installs dependencies from `debian/control`, runs the
     12 upstream tests, builds the packages and runs `debian/tests/build` against the
     13 installed packages alongside MHD1.
     14 
     15 The test-only Debian patch uses each test phase's existing timeout budget for
     16 curl requests. Upstream's fixed 50 ms connection timeout is too short for TLS
     17 handshakes under arm64 emulation; the parent harness still enforces the phase
     18 deadline and no tests are disabled.
     19 
     20 Buildbot checks out taler-deployment and builds Trixie packages for amd64 and
     21 arm64. Upload runs only after both builds pass, using their explicit artifact
     22 manifests. It uses the existing `trixie-taler-ci` incoming directory, which feeds
     23 `apt-nightly`; it does not publish to the stable or testing repositories managed
     24 by `taler-pkg`. Changes to this overlay or its Buildbot scripts trigger a rebuild.
     25 
     26 For local validation, build the image from `buildbot/libmicrohttpd2/Containerfile`
     27 and run `buildbot/libmicrohttpd2/build.sh` with the deployment checkout mounted
     28 at `/workdir`, a writable artifact directory at `/artifacts`, and
     29 `CI_COMMIT_REF` set to a unique validation identifier. Use the same image
     30 architecture for building and running. Do not run `upload.sh` for a local test.
     31 
     32 ## Rollout
     33 
     34 1. Build and publish MHD2, then check that both architectures are visible in
     35    the Trixie nightly APT index.
     36 2. Rebuild Exchange with `libmicrohttpd2-dev` installed. Its packages must include
     37    `libtalermhd2.so`, `talermhd2.pc` and `taler_mhd2_lib.h`, the Sync launcher
     38    override, and the MHD2 timer cancellation fix.
     39 3. Refresh Sync's CI image and run its complete build, test and packaging jobs.
     40    Its API test explicitly selects `sync-httpd2` through the unified launcher's
     41    `TALER_TESTING_SYNC_BINARY` variable and must pass, not skip.
     42 
     43 Other distribution pipelines need MHD2 built for their distribution before
     44 adopting the updated Exchange/Sync Debian build dependencies.