Apache httpd 2.4.71-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/httpd:2.4.71-CE-ubuntu24.04-r2 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.
This trail
As JSON- Image
readystack/httpd:2.4.71-CE-ubuntu24.04-r2 - Index digestsha256:e9677bad03d69dae9a958fca5d0de38cce663768ec219f01ca210acdeec93c6e
- linux/amd64 digestsha256:10a2727845ae174dcf4ef3dd09d43847b133357fbb06f09138c211996dafade5
- Archive
ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 now5ac1e875fc8c1ccdb29ec8d71684fe391104fa42b2cb06dae7adbe9dfe73358a
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-12T07:17:23Z by KitForge release/build_trail.py
- Sections9 sections, 8 fully recorded; 1 item not recorded
Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:
cosign verify-blob --key https://readystack.dev/keys/cosign.pub \ --bundle ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductApache httpd (httpd) [MANIFEST.json]
- Release tag2.4.71-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/httpd:2.4.71-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:e9677bad03d69dae9a958fca5d0de38cce663768ec219f01ca210acdeec93c6e [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:10a2727845ae174dcf4ef3dd09d43847b133357fbb06f09138c211996dafade5 [ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.tar.gz (bytes 584014035) [MANIFEST.json]
- Archive sha256 at publish5ac1e875fc8c1ccdb29ec8d71684fe391104fa42b2cb06dae7adbe9dfe73358a [MANIFEST.json, tarball_sha256]
- Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
- Repack historynone: the archive is as first published [MANIFEST.json, repack_history]
- Upstream repositoryhttps://github.com/apache/httpd [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream ref2.4.71 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit4554c7436049b6a68bfee7fbae32fc5ced666355 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashd036c14b10e548c79c0adfc66eb5b5601b7a1b94b3e70de58cb7620e784cb2eb (files 5548) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:fff43bcfc46cdcebbcaa2b8bb7f81327c0c5e2093da06e5fcefb50b02e31f636 [ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1794448190 (utc 2026-11-12T01:49:50Z) [ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.rebuild.json, inputs.source_date_epoch]
- Base images
- ref golang:1.27.3-bookworm@sha256:972b4110ba0f47539a975c31e52c64765e1ff19f2d74469ae4a595c6676e80a5 · platform digest sha256:fea12ba16096adec0f699ce1c4da2154d320450e56c1f63671f95d2a3551c77b
- ref ubuntu:24.04@sha256:2198e4c65076e9cb0b3d695219df667c0e3b0072da64ca3c2648aca17dcecaf5 · platform digest sha256:77eb101c607d6e3d4f5ad0c8a02c2136c689b98aba1f359e6502ba517e5c57ec
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.rebuild.json, engine]
- Engine commit(s)
- commit 0d6cfe73bbf4df66989e87099ed978c9b446fd18 · dirty yes · first drive 4357
- commit f797cdae453e92790f99eb2f40f256494c09f039 · dirty yes · first drive 4364
Why this release exists
Fully recorded- Chain1010 (created 2026-11-12T06:07:37Z · trigger customer_request · upstream version 2.4.71) [chains, chains #1010]
- Requestbuild request #694 (rebuild) (requested at 2026-11-12T01:49:51Z · requested by kitforge-agent · version 2.4.71) [build_requests, build_requests #694]
- Reasonrevision 2.4.71-CE-ubuntu24.04-r2: same upstream version rebuilt (retarget.py --rev-bump) [build_requests, build_requests #694 request_reason]
- Supersedesreadystack/httpd:2.4.71-CE-ubuntu24.04-r1 (chain 972) [chains, chains #972]
The path through the harness
Fully recorded1 chain · 2 drives · 18 stages · 1 rewind
Chain 1010 release · ready_to_ship
Created 2026-11-12T06:07:37Z, upstream 2.4.71, build request 694 [chains, chains #1010]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 4357 | 2026-11-12T06:08:01Z | 17.5 | build host 3 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4357] |
| 4364 | 2026-11-12T07:12:43Z | — | build host 3 publish-held | not recorded [drive_runs, drive_runs #4364] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-12T06:08:11Z | 2026-11-12T06:08:12Z | 1 | 4
|
order_json 37b5139f4808… |
acquire |
2026-11-12T06:08:19Z | 2026-11-12T06:08:20Z | 1 | 12
|
source_tree e3f1cb41d3ef…license_file 47b8c2b6c330…custody_inputs 50027e412a17…source_tree_hash b2f76d1e3a38…source_file_manifest 882d5409c35d… |
plan |
2026-11-12T06:08:48Z | 2026-11-12T06:08:49Z | 1 | 10
|
recon_report 626f470a70d1…input_pin_plan a54414c2dd6d…toolchain_lock fe6bda61c4e0… |
assemble_kit |
2026-11-12T06:12:21Z | 2026-11-12T06:12:22Z | 1 | 27
|
dockerfile dfedbeea681c…build_recipe 3799c68a8015…system_pinning aa8db05a9a8a…build_offline_sh 6ab4f08a6ec7…generate_sbom_sh ce0f1e6f1e70…first_boot_health d7b9c514d06a…verify_offline_sh 3e8184ea230c…base_image_digests 3ed6b23ba6bc…dockerfile_offline dfedbeea681c…first_build_digest 6309a83dcbea… |
remediate |
2026-11-12T06:12:48Z | 2026-11-12T06:12:49Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 4f4327940536…security_report 5e9f3672d89d… |
build_kit |
2026-11-12T06:17:57Z | 2026-11-12T06:17:58Z | 1 | 9
|
cosign_stamp 243cd02a2e14…locked_digest 35c1e6e445db…freeze_manifest e27f2a6fe3d8…offline_rebuild_transcript 426da02a936b… |
verdict |
2026-11-12T06:18:23Z | 2026-11-12T06:18:24Z | 1 | 8
|
scout_verdict c3f6c6389def… |
publish_image |
2026-11-12T06:18:54Z | 2026-11-12T06:18:55Z | 1 | 7
|
hub_readme 91735cb4989a…promotion_record e3a99ae1fa4b… |
boot_instance |
2026-11-12T06:19:00Z | 2026-11-12T06:19:04Z | 2 | 3
|
instance_handle 4114367f373c… |
sbom |
2026-11-12T06:19:12Z | 2026-11-12T06:19:13Z | 1 | 5
|
sbom_md 995394645116…sbom_json fd1742f9a4f3… |
schema_discovery |
2026-11-12T06:19:16Z | 2026-11-12T06:19:16Z | 1 | 7
|
schema_hash 2be4721a1fa8…dependency_tree f11ed60147fe…table_classification 070172734239… |
admin_handbook |
2026-11-12T06:19:24Z | 2026-11-12T06:19:24Z | 1 | 7
|
api_map d92ed57fb297…admin_handbook 487662d63593… |
db_handbook |
2026-11-12T06:19:33Z | 2026-11-12T06:19:33Z | 1 | 8
|
db_handbook 7737ab4614c1…seed_isolation bf0a255089c6… |
seed_data |
2026-11-12T06:19:41Z | 2026-11-12T06:19:42Z | 1 | 6
|
seed_data_sql 423484b42af1…seed_cases_json 8e224cf0f40f… |
seed_validate |
2026-11-12T06:19:44Z | 2026-11-12T06:19:45Z | 1 | 3
|
seed_data_contract 9096d8de13dd… |
usecase_validate |
2026-11-12T06:20:03Z | 2026-11-12T06:20:04Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 1b5ba80dcbd1…test_results cb5e7f3fc24d…usecase_contract ae16badc67bd… |
finalize_docs |
2026-11-12T06:20:08Z | 2026-11-12T06:20:09Z | 1 | 9
|
defects_json 93441c315523…release_notes 01e0016674bb…api_integration_guide 11fa284eeca6… |
package_archive invalidated 2026-11-12T07:12:18Z |
2026-11-12T06:25:27Z | 2026-11-12T06:25:29Z | 1 | 36 (final gate PASS)
|
sale_tar d3e8170591eb…checksums 9f3ea78be87d…verify_md 4df6a7c0c7e0…rebuild_md 6afe288b164b…manifest_txt 12a051e519c9…actions_jsonl 1dd8bf60dfb6…provenance_md 8325d0780e97…assetchain_log_md e9eccaec0c0f…assetchain_log_json a0d90a7cf9b9… |
[stage_runs]
Rewinds
- 2026-11-12T07:12:18Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #33216]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-12T06:25:29Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 6208 | L-A183, L-A15 |
remediate | 2 | 0 | 0 | 1 | 0 | 6280 | L-A183, L-A15 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1684 | L-A59 |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.32 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-12T06:25:58Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1782] | $0.32 | 3 rounds, $40.00 | d3e8170591eb… |
Defects
Fully recorded- Ledger entries11 [defects, defects where product_slug=httpd and this tag or chain]
- Disclosed in the archive0 [docs/defects/defects.json, entries]
11 ledger entries: by severity low 11; by status fixed-in-release 11.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-httpd-cbf746d78aAdmin handbook: Table of contents still lists the removed bash-probe and id appendix entries (dead anchors); the appendix now has only the rs-probe entry. [defects, defects #259626] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-14aa1f1a0cAPI guide: health check described as GET / HTTP/1.0 (r1 bash probe); r2 uses rs-probe (HTTP/1.1) [defects, defects #259627] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-8f9777836fDatabase handbook: health check described as GET / HTTP/1.0 (r1 bash probe); r2 uses rs-probe (HTTP/1.1) [defects, defects #259628] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-0efd7a4940Admin handbook: health check described as GET / HTTP/1.0 (r1 bash probe); r2 uses rs-probe (HTTP/1.1) [defects, defects #259629] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-021423438bDatabase handbook: health check described as GET / HTTP/1.0 (r1 bash probe); r2 uses rs-probe (HTTP/1.1) [defects, defects #259630] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-07afdacad4Admin handbook: not-built module lists incomplete vs the changed Modules section [defects, defects #259631] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-2956c80251Admin handbook: Still attributes the failure to a different owner (open ledger row RSD-httpd-5e2f961223); ownership does not matter, the permission bits for uid 999 do (the same handbook says so at the Non-root… [defects, defects #259632] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-74334fb3cfAdmin handbook: The command is `docker exec`, which has no -v flag (`docker exec -v x:/z c httpd -t` -> 'unknown shorthand flag: v'); the command checks the container's mounted file, not 'only the shipped file'. [defects, defects #259633] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-fe57d7b5d6Database handbook: The code block under 'To verify your edited configuration' is the no-mount command (round-4 finding): it checks only the shipped httpd.conf and prints Syntax OK whatever the customer's file holds. [defects, defects #259634] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-1396dabfbcAdmin handbook: BUILD_OFFLINE.sh checks only docker, jq, the daemon architecture and buildx; neither script checks for curl or tar, so a missing curl is not reported as a missing requirement. [defects, defects #259635] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
RSD-httpd-f204fc3339Admin handbook: False causal claim: a non-root user can write to a read-write bind mount that uid 999 may write to; being non-root does not stop writes outside the image filesystem. [defects, defects #259636] | low | fixed-in-release | held review (review model) | 2.4.71-CE-ubuntu24.04-r2 |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:10a2727845ae174dcf4ef3dd09d43847b133357fbb06f09138c211996dafade5 · published digest sha256:10a2727845ae174dcf4ef3dd09d43847b133357fbb06f09138c211996dafade5 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 135) [docs/provenance/REPRO_VERIFICATION.json, verified]
- Final contract gate (G8)PASS (checks artifact_coverage, assetchain_coverage, cosign, cpu_baseline, offline_rebuild, rebuild_manifest, scan_grade, scout_grade_a, script_copies, tag_base_os, thread_exit, trademark_shipped, unpack_files, vex_shipped) [g8_result.json, result]
- Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-12T07:13:03Z · failing Docker Scout counts 15 packages with copyleft licences (GPL, LGPL, MPL), all of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component).) [SCOUT_EVIDENCE.json, docker_scout_policy]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-12T07:12:53Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3826623381 · transparency-log entry
- log index 3826625386 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3827666616 · transparency-log entry · integrated 2026-11-12T07:15:56Z) [ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:e9677bad03d69dae9a958fca5d0de38cce663768ec219f01ca210acdeec93c6e · state attached · log index 3827669802 · transparency-log entry
- kind sbom · digest sha256:e9677bad03d69dae9a958fca5d0de38cce663768ec219f01ca210acdeec93c6e · state attached · log index 3827671585 · transparency-log entry
- kind vsa · digest sha256:e9677bad03d69dae9a958fca5d0de38cce663768ec219f01ca210acdeec93c6e · state attached · log index 3827672376 · transparency-log entry
- kind provenance · digest sha256:10a2727845ae174dcf4ef3dd09d43847b133357fbb06f09138c211996dafade5 · state attached · log index 3827672916 · transparency-log entry
- kind sbom · digest sha256:10a2727845ae174dcf4ef3dd09d43847b133357fbb06f09138c211996dafade5 · state attached · log index 3827673295 · transparency-log entry
- kind vsa · digest sha256:10a2727845ae174dcf4ef3dd09d43847b133357fbb06f09138c211996dafade5 · state attached · log index 3827673728 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/httpd/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-12T06:26:02Z on build host 3 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:10a2727845ae174dcf4ef3dd09d43847b133357fbb06f09138c211996dafade5 [clean-room rebuild ledger, runs[777]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
Publication
Fully recorded 1 pending at generation- Image pushed (internal tag), publish_image passed2026-11-12T06:18:55Z [stage_runs, stage_runs chain 1010 stage publish_image]
- Archive manifests written2026-11-12T07:14:46Z [PUBLISH_MANIFEST.json, published_at]
- Pending at generation: the archive cut-over on prodasset, the release tag's promotion and the site event (this trail was generated after G8 and before them; they are appended as a 'publication' event in History)
Packages and CPU level
Fully recorded- x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 186 · probed 2026-11-12T06:15:26Z · source build_kit) [release_images, isa_level_hard]
History
2 events- 2026-11-12T07:17:23Z generated: by KitForge release/build_trail.py · generator commit f797cdae453e92790f99eb2f40f256494c09f039
- 2026-11-12T07:18:39Z publication: promoted at 2026-11-12T07:17:58Z · promoted digest sha256:e9677bad03d69dae9a958fca5d0de38cce663768ec219f01ca210acdeec93c6e · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 489 · checklist status complete · checklist at 2026-11-12T07:18:39Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
Records
25 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/httpd/2.4.71-CE-ubuntu24.04-r2/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/httpd/2.4.71-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/httpd/2.4.71-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-httpd-2.4.71-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/httpd/2.4.71-CE-ubuntu24.04-r2/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/httpd/2.4.71-CE-ubuntu24.04-r2/), as staged for publishing | — |
clean-room rebuild ledger | the clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published) | — |
build_requests | sadb, ReadyStack's engine database (not published) | 694 |
chains | sadb, ReadyStack's engine database (not published) | 1010 |
defects | sadb, ReadyStack's engine database (not published) | httpd 2.4.71-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 1010 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 1010 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 1010 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 1010 |
release_images | sadb, ReadyStack's engine database (not published) | httpd 2.4.71-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 1010 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 1010 |
attestations.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/PROMOTION_RECORD.json | the chain's workspace on the controller (not published) | — |
g8_result.json | the chain's workspace on the controller (not published) | — |