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.