compression: publish linkable bzip2 and xz libraries - #25
Conversation
|
Devil's-advocate follow-up on final head
I found no remaining formula-code blocker on this head. This is not merge approval yet: #842, #867/ABI-18 artifacts, and #884 must land, then trusted bottles from |
e143ffd to
6dd503b
Compare
|
Devil's-advocate review follow-up on rebased final head
I found no remaining formula-code blocker on |
Install and exercise the upstream libbz2 and liblzma consumer surfaces so dependent Kandelo formulae can link built-in compression support instead of spawning fallback tools.
Build libbz2 and liblzma objects as PIC so Kandelo shared Wasm consumers can link the published archives. Exercise each archive through pkg-config, a real side-module link, dlopen, and dlsym under the Kandelo runtime; retain liblzma's pthread metadata contract explicitly.
6dd503b to
ca052d7
Compare
|
Devil’s-advocate source-only review at |
Purpose
Expose complete, linkable bzip2 and xz library contracts for Kandelo Homebrew consumers instead of forcing downstream formulae to invoke compression CLIs.
Changes
libbz2.a,bzlib.h, and stable-optbzip2.pcmetadata;optliblzma.pcmetadata with its static pthread link requirements;lzma_stream_encoder_mtround trip;dlopen, resolve its exported function withdlsym, and execute it under Kandelo.Formula evidence
The artifact-producing formulae are byte-identical to the fully exercised ABI-18 head
6dd503b151b03768950aa597cadcd883db65173c:Formula/bzip2.rb: blob724a75bb5e26e6455d3918b96e9cb07390ba47ff;Formula/xz.rb: blobb5bad450a85cb1be44f67875411a8a6189ccf9c6.That head was validated from a fresh dedicated Homebrew prefix with Kandelo integration head
135630b95443c90d74672143042a730a09bc0f66:libbz2.a97e0871ee1eab8dc3ec1f291d80639c3deb3f118a80448c5ec67f227f2bc48d2, andliblzma.a12d9223d89b20b3662c432b6ae2af4b94ae9383183ee8448a9b518b40507c23f;dlopen/dlsym;brew testpassed for both formulae under Node, including CLI round trips and the side-module executions;optprefixes,-lbz2, and the asserted-llzma -pthread -lpthreadstatic contract;brew readall --aliases, and formula diff checks passed.The branch is now restacked onto tap main
b9df20653b44fb3125b809c4cf96df27f199c5f9, which includes the merged ncurses, PCRE2, zstd, Dash, Make, and ed source formulae. Current head isca052d77aeddb4d5ba626d2c8f4d07d9e50236d8. Fresh history-only validation through Kandelo's dev shell passed:Formulary.factoryloading of both formulae from an installed review tap while resolving the shared support fromAutomattic/kandelo-homebrew;git range-diff, andgit diff --check.No source build, bottle build, Node runtime test, or Chromium runtime test was rerun for this history-only restack. The exact formula blobs preserve the prior source/runtime evidence; publication requires new bottles from the eventual merged tap commit.
Source merge and bottle gates
This PR contains only the two source formula updates and the additive README description. It contains no bottle block, bottle archive, link manifest, or provenance sidecar. The source formulae may merge independently after a fresh source-only review; that merge is not a claim that either package can yet be installed from a bottle in a stock Kandelo guest.
Automattic/kandelo#867 is merged and is no longer a gate. Trusted ABI-18 bottle construction and publication remain gated until:
brew test, and the relevant Node and Chromium consumer paths.Automattic/kandelo#890 is not required to build these roots themselves, which have no same-tap target dependencies, but it is required before downstream same-tap formulae consume their bottles during trusted builds. Downstream validation must demonstrate that those dependencies came from prior Homebrew bottles and receipts, not Kandelo registry artifacts or source-build fallbacks.
This wave intentionally publishes wasm32 only. Firefox, WebKit, and wasm64 were not validated and are not claimed. No Kandelo main-repository files or ABI definitions change here.