Skip to content
This repository was archived by the owner on Jul 21, 2026. It is now read-only.

ed: add the conforming line editor dependency - #31

Merged
brandonpayton merged 3 commits into
mainfrom
migrate/ed-cli
Jul 12, 2026
Merged

ed: add the conforming line editor dependency#31
brandonpayton merged 3 commits into
mainfrom
migrate/ed-cli

Conversation

@brandonpayton

@brandonpayton brandonpayton commented Jul 11, 2026

Copy link
Copy Markdown
Member

Purpose

Publish GNU ed as a first-class Kandelo package so patch application and other POSIX build workflows have a conforming line editor instead of the deliberately small posix-utils-lite applet.

Changes

  • build GNU ed 1.22.5 from the verified upstream source archive with the Kandelo SDK;
  • keep lzip as a host-only extraction dependency and avoid introducing a target sed dependency;
  • pass the cross compiler through ed's custom configure interface;
  • instrument the editor with Kandelo's fork continuation tool because ed shell escapes call fork;
  • install ed, a relocatable POSIX-shell red wrapper, manpages, and Info documentation;
  • declare the source's actual GPL-2.0-or-later license;
  • test GNU Patch's exact ed - FILE invocation shape, editing commands, shell execution, and restricted mode.

The red wrapper replaces upstream's sed-based path rewrite with equivalent POSIX parameter expansion. This avoids an undeclared target sed runtime dependency and leaves /bin/sh as the normal Kandelo base-system boundary.

Evidence

The formula semantics are unchanged from the previously reviewed ABI-18 build:

  • a clean source build completed from semantic head b74e858;
  • literal brew test automattic/kandelo-homebrew/ed passed under Node;
  • the test covered version reporting, substitution, append/write, a forked shell escape, GNU Patch's ed - FILE form, and restricted shell rejection;
  • the exact installed ed and red passed the same process-path workflow in Chromium;
  • artifact inspection reported ABI 18, only env/kernel imports, all five wpk_fork_* exports, no legacy Asyncify, and no Cellar or host paths.

The three-commit branch is now based on tap main e05afec, which includes Dash, zstd, PCRE2, and Make. Every artifact-producing formula line after the support import is byte-identical to the validated 6c6c82f head; the final commit changes only loading to the installed Tap.fetch path. Current head is 6d75f4342c3791318795c333db09013c663b2a05.

Current rebase validation through Kandelo's dev shell passed Homebrew Ruby syntax, brew style, literal installed-tap loading, git diff --check, and the shared Formula support suite (21 runs, 186 assertions). The formula tail matches the validated head exactly; no source build or runtime suite was rerun for this history-only rebase.

Upstream make check was not run because its host shell executes the cross-compiled editor directly. The Node and Chromium formula workflows instead exercised the target program through Kandelo.

The prior disposable bottle SHA-256 9a5043665b32f4fe38ca9301bd3799329b853199ca1cdacbbbe15b2f26cc87f6 is historical validation only. It is rejected for publication after the rebase and platform changes and must not be copied into a bottle block.

Source merge and bottle gates

Automattic/kandelo#867 is merged and is no longer a gate. The source formula may merge independently after a fresh formula review; it contains no bottle block or sidecar. Bottle construction, publication, and any installability claim remain gated until:

This PR publishes wasm32 only. Firefox, WebKit, and wasm64 were not validated and are not claimed. No Kandelo main-repository files or ABI definitions change here.

@brandonpayton

Copy link
Copy Markdown
Member Author

Devil’s-advocate source-only review at 6d75f4342c3791318795c333db09013c663b2a05: ACCEPT. The diff contains only the formula and README; no bottle block or sidecar. Upstream archive/license, build-only lzip edges, relocatable red wrapper semantics, fork instrumentation, exact install outputs, and source tests were audited. Fresh dev-shell checks passed Ruby syntax, brew style, installed-tap loading, the shared support suite (21 runs / 186 assertions), ancestry, and diff checks. Bottle publication and installability claims remain explicitly gated and are not part of this merge.

@brandonpayton
brandonpayton merged commit b9df206 into main Jul 12, 2026
@brandonpayton
brandonpayton deleted the migrate/ed-cli branch July 12, 2026 01:31
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant