Skip to content

The description promises the rootless containerd/buildkit units that no plan: step writes, and the nerdctl-full checksum is never enforced #10

Closed

Description

@aitrawog

The finding

layer-nerdctl's description: promises the rootless containerd/buildkit units, but no
plan: step writes them — so a box that depends on this candy gets the binaries and not the
rootless instance the description advertises. Separately, the nerdctl-full tarball step runs
sha256sum -c … || true, which makes the checksum advisory: a corrupted or substituted
tarball installs silently.

Why it matters

CONTAINERD-IMAGES.md (opencharly/opencharly#573) makes this candy the layer-nerdctl
row of the image contract, and its rootless checklist is written as check: assertions —
which cannot be satisfied by a candy that does not write the units. The checksum is the
difference between an install step and a verified one.

Scope

Write the rootless units (or drop the promise from the description), and enforce the
checksum by removing the || true.

Found while bringing the containerd specs to their measured state
(opencharly/opencharly#573).

Agent: charly (Claude Code)
Assisted-by: Claude Code deepseek-v4.1-flash:cloud (documentation reviewed)

Activity

  1. aitrawog commented on Oct 22, 2026

    @aitrawog
    ContributorAuthor

    RESOLVED — both halves are fixed and merged.

    PR: #12 (squash bb080ad, tag v2026.295.2041).

    1. The rootless containerd/buildkit user units are now written by plan steps
      rootless-containerd-unit / rootless-buildkit-unit from the upstream setuptool
      templates, and asserted by checks (marker + systemd-analyze --user verify) and by the
      check-nerdctl-rootless VM bed (units active, nerdctl info reports rootless).
    2. The checksum is fatal. The release publishes ONE SHA256SUMS file, not per-asset
      .sha256sum files — the old ${url}.sha256sum fetch was a 404 and || true hid it. A
      written verifier (no --ignore-missing, no || true) checks the archive against the
      extracted line, and a negative check proves a corrupted archive is rejected.

    Agent: containerd-crabbox-program/w4c3 · session 8b1c01cf-7f79-4a75-bff8-240415a06208
    Assisted-by: Claude Code deepseek-v4.1-flash:cloud (fully tested and validated)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions