dinit: supervise real Kandelo service processes - #51
Conversation
b596452 to
815ad25
Compare
|
Exact-head refresh pushed at
This is source-contract evidence only. #867 is resolved; the remaining platform/publisher gates and fresh bottle-backed Node/Chromium proof still apply. |
|
Independent devil review at exact refreshed head The upstream source/hash/license and libcxx dependency are explicit. The embedded two-line Dasynq change is byte-identical to the previously proven patch and is scoped to the LLVM Wasm SjLj/noexcept compiler boundary; it does not hide a Kandelo POSIX failure. The exact final Fresh exact-head checks: Ruby syntax passed, Homebrew style inspected 1 file with no offenses, |
|
APPROVE for source/formula readiness at exact head Devil review evidence:
This approval does not cover a bottle, receipt/provenance sidecar, stock-guest pour, or a fresh Chromium run. Keep #51 gated on the applicable platform/publisher stack, including #842, #873, exact #882 ( |
Dinitctl and dinitcheck do not import fork and are not instrumented. Make that negative boundary explicit so a future dependency or link change cannot silently turn either control-plane tool into a fork-capable artifact.
05f9eb5 to
fb6b3da
Compare
|
Independent exact-head review completed for
No Formula blocker was found. Fresh final-ABI source and bottle validation remains required. |
Why
Kandelo images need a service supervisor that can start, monitor, control, and
stop real processes. The existing Dinit entry belongs to the older package
registry, so Homebrew-based images cannot yet depend on it as a normal package.
Migrating Dinit 0.19.4 matters because its complete lifecycle exercises
Kandelo's standard C++ library, signals, process creation, execution, and wait
behavior instead of a service-specific substitute.
This PR contains Formula source only. It does not publish a bottle, which is
Homebrew's prebuilt package archive, or change Kandelo's runtime or Application
Binary Interface (ABI).
What changed
libcxxtarget dependencymconfig-genthrough the declared host C++ helper while target objects use Kandelo's wasm32 SDK and the installed libcxx kegnoexceptevent-loop boundaries which would terminate before the generated setjmp dispatcher receiveslongjmpdinitanddinit-monitordinitctlanddinitcheckto remain fork-freeNo registry build script, syscall workaround, or package-specific runtime behavior is used.
Exact source
fb6b3da7fb1d948c750867cdee054fd980e13a7ddb7c3a4f8bb5de36c71c713efbce21263b2bb6705ac08c51ab1ed31acc5a508dc8b2af9756b53a7449bca24889dc8f204e9f2ceeaed543e4a4ea173fd5b6c257d7b2567813aa98350e452b82854072df24dd02fa971b28b72387e52b5ee18dc3ba8b476506f1f8889a7a679195ead9bbdef119830437d5a758566607(ABI 39)The final branch must be restacked onto the then-current tap
mainbefore merge. Formula and patch bytes remain identical to the previously reviewed source.Current platform gates
Do not merge this PR yet. The Formula is correct, but two open Kandelo fixes gate an honest ABI 39 lifecycle:
wasm32posix-c++with objects before-lc++ -lc++abi. Current SDK argument reconstruction moves those objects after the libraries. The ABI-bearingchannel_syscall.cis present; the Formula did not omit it. #913 fixes the SDK defect.After #913 and #936 land, this PR needs a fresh source install plus
brew teston current tapmain. That lifecycle will determine whether #842's larger default main-thread stack is also required. #842 is not yet claimed as a Dinit gate.Current validation
git diff --check: passedlibcxx: passedInstallation correctly stops at the current validator mismatch, so no ABI 39 Formula lifecycle claim is made yet.
Historical runtime evidence
The byte-identical Formula previously completed two ABI 18 source builds. Node and Chromium ran the CLI probes and the full Dinit service lifecycle;
dinitanddinit-monitorwere fork-complete, whiledinitctlanddinitcheckremained fork-free. That evidence supports the recipe design but is not a current-ABI, bottle, provenance, or pour claim.Bottle publication remains separate and requires the merged publisher plus stock Homebrew Node and Chromium pours. This PR contains no
bottle doblock, archive, sidecar, receipt, or provenance metadata.