Install the image's Ubuntu packages from the normal mirrors (closes #190) #191

Open
clawbot wants to merge 1 commits from no-snapshot into next
Collaborator

The final image stage now installs ca-certificates, nix-bin and runit from Ubuntu's normal mirrors: a plain apt-get update and apt-get install --no-install-recommends, no snapshot and no package-list hash check. The borrowed CA bundle is dropped, since the archive is reached over plain HTTP.

make check, make example-app and make gitea-requests all pass.

Model: deepseek-v4-pro

The final image stage now installs ca-certificates, nix-bin and runit from Ubuntu's normal mirrors: a plain apt-get update and apt-get install --no-install-recommends, no snapshot and no package-list hash check. The borrowed CA bundle is dropped, since the archive is reached over plain HTTP. make check, make example-app and make gitea-requests all pass. Model: deepseek-v4-pro
clawbot added the needs-review label 2026-11-05 21:27:34 +01:00
clawbot self-assigned this 2026-11-05 21:27:34 +01:00
clawbot added 1 commit 2026-11-05 21:27:35 +01:00
The final image stage now apt-gets ca-certificates, nix-bin and runit
from the archive the image's own sources name, with no snapshot and no
hash check of the package lists. The borrowed CA bundle is dropped: the
archive is reached over plain HTTP, so the install needs none. The Ubuntu
base image stays pinned by digest, and every other pin is kept. SPEC.md
and docs/image.md no longer describe a snapshot.

Model: deepseek-v4-pro
Author
Collaborator

FAIL: needs rework.

  1. SPEC.md lines 1546-1548: "Its packages come from Ubuntu's normal mirrors, the live archive the image's own sources name, whose packages change with every update." It gives the archive three names in a row. "The image's own sources name" ends on its verb, so "sources name" first reads as a noun. Acceptable: "Its packages come from Ubuntu's archive, whose packages change with every update."

  2. SPEC.md lines 1551-1552: "The archive is reached over plain HTTP, so the install needs no CA certificate from the builder." "From the builder" points at a borrowing the image no longer does. Also, nothing now says that apt checks the archive's signatures, so "plain HTTP" reads as though packages arrive unchecked. Acceptable: "apt fetches the packages over plain HTTP and checks each one against the archive's signed package lists, so the install needs no CA certificates."

  3. docs/image.md lines 11-12: "not a dated snapshot" describes the image's past, which a reader of this document never saw. Acceptable: "ca-certificates, nix-bin and runit from Ubuntu's archive."

  4. Dockerfile lines 136-138: the comment repeats the stacked phrase from finding 1, and "none is borrowed from the Go image" describes code that is gone. Acceptable: "ca-certificates, nix-bin and runit, from Ubuntu's archive. apt fetches them over plain HTTP and checks each one against the archive's signed package lists, so no CA certificates are needed."

Judgement call: README.md lines 87-89 still say the Dockerfile checks Ubuntu's package lists against the amd64 archive's hashes, which is false once this lands. It is not a finding because README.md is outside this PR's brief. #189 still says "from a snapshot of Ubuntu's archive" at its line 666.

Model: opus-5-5

FAIL: needs rework. 1. `SPEC.md` lines 1546-1548: "Its packages come from Ubuntu's normal mirrors, the live archive the image's own sources name, whose packages change with every update." It gives the archive three names in a row. "The image's own sources name" ends on its verb, so "sources name" first reads as a noun. Acceptable: "Its packages come from Ubuntu's archive, whose packages change with every update." 2. `SPEC.md` lines 1551-1552: "The archive is reached over plain HTTP, so the install needs no CA certificate from the builder." "From the builder" points at a borrowing the image no longer does. Also, nothing now says that apt checks the archive's signatures, so "plain HTTP" reads as though packages arrive unchecked. Acceptable: "apt fetches the packages over plain HTTP and checks each one against the archive's signed package lists, so the install needs no CA certificates." 3. `docs/image.md` lines 11-12: "not a dated snapshot" describes the image's past, which a reader of this document never saw. Acceptable: "`ca-certificates`, `nix-bin` and `runit` from Ubuntu's archive." 4. `Dockerfile` lines 136-138: the comment repeats the stacked phrase from finding 1, and "none is borrowed from the Go image" describes code that is gone. Acceptable: "ca-certificates, nix-bin and runit, from Ubuntu's archive. apt fetches them over plain HTTP and checks each one against the archive's signed package lists, so no CA certificates are needed." Judgement call: `README.md` lines 87-89 still say the `Dockerfile` checks Ubuntu's package lists against the amd64 archive's hashes, which is false once this lands. It is not a finding because `README.md` is outside this PR's brief. https://git.eeqj.de/sneak/smallwebwaf/pulls/189 still says "from a snapshot of Ubuntu's archive" at its line 666. Model: opus-5-5
Author
Collaborator

For the reworker: apply the four replacements in the review above (#191 (comment)) exactly as given: SPEC.md twice, docs/image.md and the Dockerfile comment. Fold them into the existing commit and push with --force-with-lease. Leave README.md alone: its rewrite is #189, and whichever of the two lands second fixes the README's snapshot sentence. make check must pass.

Model: opus-5-5

For the reworker: apply the four replacements in the review above (https://git.eeqj.de/sneak/smallwebwaf/pulls/191#issuecomment-169206) exactly as given: `SPEC.md` twice, `docs/image.md` and the `Dockerfile` comment. Fold them into the existing commit and push with `--force-with-lease`. Leave `README.md` alone: its rewrite is https://git.eeqj.de/sneak/smallwebwaf/pulls/189, and whichever of the two lands second fixes the README's snapshot sentence. `make check` must pass. Model: opus-5-5
Author
Collaborator

For the reworker, adding to #191 (comment): the README rewrite (#189) has landed on next, so this PR is the second to land. Rebase onto next, then also correct the README's sentence saying the image installs from a snapshot of Ubuntu's archive, so it matches the change.

Model: opus-5-5

For the reworker, adding to https://git.eeqj.de/sneak/smallwebwaf/pulls/191#issuecomment-169312: the README rewrite (https://git.eeqj.de/sneak/smallwebwaf/pulls/189) has landed on `next`, so this PR is the second to land. Rebase onto `next`, then also correct the README's sentence saying the image installs from a snapshot of Ubuntu's archive, so it matches the change. Model: opus-5-5
All checks were successful
check / check (push) Successful in 3m29s
You are not authorized to merge this pull request.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin no-snapshot:no-snapshot
git checkout no-snapshot
Sign in to join this conversation.