You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm just wondering... would it be too hard to add support for older versions of GLIBC?
Yes, extremely. ;)
If you're interested, I've been working on getting a build of glibc we can inject for tea binaries on pkgxdev/pantry#147. glibc is a tricky beast, since it's all the way at the bottom of the stack. If you have insights or assistance to offer, it's always greatly appreciated.
(I won't badger you to move to an LTS that's still in standard support, even though 16.04 is over 7 years old. I want to, because it's easier for me, but I'm too nice to do it.)
It's entirely possible, of course, that you can build tea and many packages manually on 16.04. But our bottles are built against a debian buster GLIBC (2.28) and ubuntu 16.04 is 2.23, it looks like.
My needs to use Ubuntu 16.04 are beyond me, thanks for understanding that. And I wanted to use Tea on Ubuntu 16.04 to make that less painful (e.g. I need to install Python 3.10 on Ubuntu 16.04).
If you're interested, I've been working on getting a build of glibc we can inject for tea binaries on pkgxdev/pantry#147. glibc is a tricky beast, since it's all the way at the bottom of the stack.
Nevertheless this sounds amazing. If someday it gets done, I suppose curl -fsS https://tea.xyz | sh could handle it as well (i.e. installing tea's glibc manually before invoking tea itself).
If you have insights or assistance to offer, it's always greatly appreciated.
Sorry but I have no assistance to offer at this point. I can just say that I think you are doing the right thing. :)
this is a fantastic question. in theory, supporting it should be trivial, since it uses most of the same low-level tools. patches would be needed to libpkgx and pkgx to recognize the platform, and there would probably be some changes needed to deal with libc differences. but if deno/rust work on freebsd (and i assume they do), a port isn't a big deal (until we get to building the entire pantry. that is a big deal. ;) )
if you get libpkgx/pkgx working, we'd love to support freebsd.
Sadly, it is not currently trivial to boostrap the key packages required to build the rest.
install deno with the freebsd system package manager
clone pkgx
deno task install
pkgx integrate (required to easily use the pantry, sorry, will fix eventually)
clone the pantry
In the clone: dev
pkg edit llvm.org remove deps (install them from system)
pkg build llvm.org
then work from there.
what we need is some kind of “bootstrap pkgx for a new system” manual with helper scripts. Let me put that on my TODO list. We'll need it for Windows native anyway.
Once we have verified a new system can be supported we will put it into our CI/CD so that all packages are built and hosted on our infra.
I recently learned about Pixi at https://prefix.dev (not affiliated, and I'm sorry to post a competitor here). It supports Windows and all the other platforms, and because they are based on Conda packages, they already have pretty good collection of existing packages.
Would be great for you guys to join forces, because the world would be a better place :)
Your best bet for windows support at present is WSL2; since it's a full (enough) linux environment running inside your windows, everything we know of works in the appropriate linux way.
lol, what do you mean? pkgx is not supported on Windows yet. I supposed you knew that already since you said:
oh i thought since you mentioned curl.exe exists, so i thought installation worked haha.
yeah i dont use wsl2. i tried setting up one-time but gave up bcz of some errors. didnt try again. i'll wait for windows support without wsl like bun.sh :)
I was hoping that pkgx v2 would work on Alpine, but unfortunately it doesn't yet:
➜ ~ curl https://pkgx.sh | sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 4805 100 4805 0 0 7547 0 --:--:-- --:--:-- --:--:-- 7543installing: /usr/local/bin/pkgx######################################################################## 100.0%Error relocating /usr/local/bin/pkgx: __res_init: symbol not foundError relocating /usr/local/bin/pkgx: fcntl64: symbol not found
Coming at this from the consumer end: I just ported pkgm to Windows in pkgxdev/pkgm#87 and hit the wall that pkgm install <anything> returns Error: CmdNotFound("...") regardless of what pkgm itself does. Probed the dist bucket exhaustively — 0 of 842 top-level prefixes under dist.tea.xyz have a windows/ subdir, so pkgx on Windows can only fetch pkgx.exe itself (from pkgx.sh/Windows/x86_64.zip) and nothing else.
Wanted to share a snapshot of where each downstream piece sits so the discussion has concrete state to point at, and propose a pilot path.
Current state, layer by layer
Layer
State
Notes
pkgx CLI (Rust)
✅ Windows-ready
#[cfg(windows)] branches in execve.rs (Command::spawn replaces execve), install.rs (lockfile), utils.rs::find_program (looks up .exe→.bat→.cmd).
libpkgx (Rust)
⚠️ WIP per this ticket (libpkgx#48 v1-wip)
Used by pkgx itself with cfg-guards; the Deno bindings at deno.land/x/libpkgx@v0.21.0 work on Windows for read-only operations (verified: pkgm --version runs end-to-end on windows-latest).
pkgxdev/setup
✅ Windows-ready
installer.ps1 installs to $env:LOCALAPPDATA\pkgx and adds it to the user PATH. No system install, no UAC.
pkgxdev/pantryget-matrix.ts
❌ Hard veto
Throws invalid platform for any windows/* entry. PR proposed: pkgxdev/pantry#12946 — accept the opt-in without changing default behaviour. No-op for every package currently in the pantry.
pkgxdev/brewkitbuild@v1
⚠️ POSIX-shaped
Action uses shell: bash throughout (Git Bash works on Windows runners), but every script downstream assumes coreutils, codesign branches for macOS, etc. Not catastrophic but real porting work.
dist.tea.xyz
❌ Zero Windows artifacts
Direct consequence of brewkit not running on Windows runners.
So the order of operations is roughly: pantry planner → brewkit build → dist artifact → pkgx resolution → pkgm install. Today everything except brewkit-and-the-planner is essentially ready; the artefact pipeline is the choke point.
Concrete sub-tasks worth splitting out of this megaticket
pkgxdev/brewkit — add a Windows codepath to build@v1. The hard one. Open question: is the goal feature-parity with the POSIX build (autoconf/cmake-style pkgs), or only a subset?
pkgxdev/dist infrastructure — once brewkit can emit Windows tarballs, confirm the S3 bucket layout follows the same <project>/windows/x86-64/v<version>.tar.xz convention pkgx already expects.
Rather than a full brewkit-on-Windows port (which is months of work), a "Windows mini-build" path could unblock useful packages quickly. Packages whose package.ymlbuild: script is essentially go build or cargo install --target x86_64-pc-windows-msvc cross-compile from a Linux runner without needing Windows at all — Go and Rust ship cross-compilers in their standard toolchain, and the GHA ubuntu-latest runner has both.
Candidate seed packages (all currently in pantry, all pure-Go or pure-Rust):
charm.sh/gum, sharkdp/fd, sharkdp/hyperfine, taskfile.dev, BurntSushi/ripgrep, bat, crates.io/zoxide, crates.io/dust
If brewkit grew a "cross-compile to Windows from Linux" mode for these, ~30-50% of the pantry's pure-Go/Rust packages could ship Windows builds without a Windows runner being involved at all. Real-Windows-runner work would then only be needed for C/C++/autoconf packages.
Happy to take on the pantry planner PR (already drafted), and to prototype the cross-compile pilot for one Go pkg if useful. The brewkit-side work is too deep into pkgxdev internals for me to volunteer blind — but if there's an existing design direction, pointers welcome.
Probed the dist bucket exhaustively — 0 of 842 top-level prefixes under dist.tea.xyz have a windows/ subdir, so pkgx on Windows can only fetch pkgx.exe itself (from pkgx.sh/Windows/x86_64.zip) and nothing else.
the available windows packages are under v2/: https://dist.pkgx.dev/?prefix=v2/ . note that the work in manifests seems to have been rolled back a year ago, so we don't currently have infrastructure for building more.
Thanks for the correction — my probe was on the v1-layout root prefix and completely missed v2/. Re-running against the right path now, the picture is much friendlier than my comment suggested:
15 of 88 packages under v2/ have a windows/ subdir today (all built artifacts, two versions in some cases, e.g. v2/bun.sh/windows/x86-64/v1.2.5.tar.xz and …/v1.2.10.tar.xz):
That's a coherent toolchain layer — language runtimes (deno, bun, go, rust, python, perl), build tools (cmake, ninja, nasm), and base libs (openssl, sqlite, zlib, libarchive, curl). Enough that, with the manifest infrastructure revived, application-layer Windows packages could plausibly come back online via cross-compile (Go/Rust toolchains are right there).
That reframes the picture: the missing piece isn't a Windows build path from scratch — it's reviving (or replacing) the manifest work that was rolled back a year ago. Two questions on that:
What did the rolled-back work actually do? Was it a brewkit branch, a pantry-side change, or a separate manifest-generator pipeline? Any pointer (PR, branch, even an internal note) would help anyone trying to pick it up understand what regressed vs. what was a design dead-end.
Was the rollback motivated by something fundamental (signing, security, dependency-resolution semantics that didn't work out on Windows) or operational (cost, runner availability, prioritisation)? That changes whether a clean reattempt is even sensible.
If the second answer is "operational, no fundamental block" then I think the proposal in my previous comment still stands — pilot a cross-compile-from-Linux path for the application-layer packages on top of the v2 toolchain you've already got. If the first answer surfaces a specific brewkit-side prototype, the right move might be to rebase that rather than reinvent.
(Updating my pkgm draft and my pantry PR notes to refer to v2/<pkg>/windows/ correctly. Sorry for the noise on the first round.)
Thanks for the correction — my probe was on the v1-layout root prefix and completely missed v2/. Re-running against the right path now, the picture is much friendlier than my comment suggested:
15 of 88 packages under v2/ have a windows/ subdir today (all built artifacts, two versions in some cases, e.g. v2/bun.sh/windows/x86-64/v1.2.5.tar.xz and …/v1.2.10.tar.xz):
That's a coherent toolchain layer — language runtimes (deno, bun, go, rust, python, perl), build tools (cmake, ninja, nasm), and base libs (openssl, sqlite, zlib, libarchive, curl). Enough that, with the manifest infrastructure revived, application-layer Windows packages could plausibly come back online via cross-compile (Go/Rust toolchains are right there).
That reframes the picture: the missing piece isn't a Windows build path from scratch — it's reviving (or replacing) the manifest work that was rolled back a year ago. Two questions on that:
What did the rolled-back work actually do? Was it a brewkit branch, a pantry-side change, or a separate manifest-generator pipeline? Any pointer (PR, branch, even an internal note) would help anyone trying to pick it up understand what regressed vs. what was a design dead-end.
Was the rollback motivated by something fundamental (signing, security, dependency-resolution semantics that didn't work out on Windows) or operational (cost, runner availability, prioritisation)? That changes whether a clean reattempt is even sensible.
If the second answer is "operational, no fundamental block" then I think the proposal in my previous comment still stands — pilot a cross-compile-from-Linux path for the application-layer packages on top of the v2 toolchain you've already got. If the first answer surfaces a specific brewkit-side prototype, the right move might be to rebase that rather than reinvent.
(Updating my pkgm draft and my pantry PR notes to refer to v2/<pkg>/windows/ correctly. Sorry for the noise on the first round.)
What did the rolled-back work actually do? Was it a brewkit branch, a pantry-side change, or a separate manifest-generator pipeline? Any pointer (PR, branch, even an internal note) would help anyone trying to pick it up understand what regressed vs. what was a design dead-end.
Was the rollback motivated by something fundamental (signing, security, dependency-resolution semantics that didn't work out on Windows) or operational (cost, runner availability, prioritisation)? That changes whether a clean reattempt is even sensible.
without having access to the specific dev notes from that date, my suspicion is that the more flexible programmable build manifests needed to support windows were suffering from exploding complexity.
I think the goal of windows builds is a good idea. possibly we need a different approach. The underlying driver for the manifests work was that bash scripts worked poorly in native windows, and therefore brewkit was unsuitable. perhaps the answer is have a brewkit-like tool that will work for windows, and a build.windows pantry key for whatever script that entails.
Picking the Windows-native thread back up — opened pkgxdev/brewkit#346 with a concrete architecture sketch + first-deliverable proposal (cross-compile jq from Linux runners via llvm-mingw, produce a .tar.xz, smoke-test on Win11).
Builds on the patterns converged on last week's brewkit issues:
Activity
[-]Platform Support Megathread[/-][+]platform support megaticket[/+]burdiyan commentedon Jun 20, 2023
Having native Windows support would be massive! Can't wait.
felipecrs commentedon Sep 13, 2023
Deno supports Ubuntu 16.04, but Tea does not (because of the old version of glibc).
I'm just wondering... would it be too hard to add support for older versions of GLIBC?
jhheider commentedon Sep 13, 2023
Yes, extremely. ;)
If you're interested, I've been working on getting a build of
glibcwe can inject forteabinaries on pkgxdev/pantry#147.glibcis a tricky beast, since it's all the way at the bottom of the stack. If you have insights or assistance to offer, it's always greatly appreciated.(I won't badger you to move to an LTS that's still in standard support, even though 16.04 is over 7 years old. I want to, because it's easier for me, but I'm too nice to do it.)
It's entirely possible, of course, that you can build
teaand many packages manually on 16.04. But our bottles are built against a debian buster GLIBC (2.28) and ubuntu 16.04 is 2.23, it looks like.felipecrs commentedon Sep 13, 2023
Alright, it's perfectly understandable.
My needs to use Ubuntu 16.04 are beyond me, thanks for understanding that. And I wanted to use Tea on Ubuntu 16.04 to make that less painful (e.g. I need to install Python 3.10 on Ubuntu 16.04).
Nevertheless this sounds amazing. If someday it gets done, I suppose
curl -fsS https://tea.xyz | shcould handle it as well (i.e. installing tea's glibc manually before invokingteaitself).Sorry but I have no assistance to offer at this point. I can just say that I think you are doing the right thing. :)
jhheider commentedon Sep 13, 2023
Well, I appreciate the encouragement, except for the fact that working at the glibc level is utterly painful and I'd love to bin the whole idea. 😆
There are a non-zero number of people using Alpine or Amazon Linux 2 who also need this, so it should be figured out.
jhheider commentedon Sep 13, 2023
i don't recall, per se. My gut says it's not tiny. probably in the 10-100MB range, if i were doing fermi approximation.
felipecrs commentedon Sep 13, 2023
Sorry, for context I had asked:
But I deleted it from here and posted in pkgxdev/pantry#147 instead. Now that you asked, I deleted it from pkgxdev/pantry#147 too.
That's not bad at all, I was just wondering since you mentioned Alpine users. lol
Trung0246 commentedon Oct 4, 2023
Is freebsd supported if compile from source?
jhheider commentedon Oct 4, 2023
this is a fantastic question. in theory, supporting it should be trivial, since it uses most of the same low-level tools. patches would be needed to libpkgx and pkgx to recognize the platform, and there would probably be some changes needed to deal with libc differences. but if deno/rust work on freebsd (and i assume they do), a port isn't a big deal (until we get to building the entire pantry. that is a big deal. ;) )
if you get libpkgx/pkgx working, we'd love to support freebsd.
mxcl commentedon Oct 5, 2023
We would love to support freebsd.
Sadly, it is not currently trivial to boostrap the key packages required to build the rest.
denowith the freebsd system package managerdeno task installpkgx integrate(required to easily use the pantry, sorry, will fix eventually)devpkg edit llvm.orgremove deps (install them from system)pkg build llvm.orgthen work from there.
what we need is some kind of “bootstrap pkgx for a new system” manual with helper scripts. Let me put that on my TODO list. We'll need it for Windows native anyway.
Once we have verified a new system can be supported we will put it into our CI/CD so that all packages are built and hosted on our infra.
mxcl commentedon Oct 17, 2023
First steps for native Windows are almost complete, just got some npm build issues pkgxdev/libpkgx#48)
burdiyan commentedon Oct 18, 2023
I recently learned about Pixi at https://prefix.dev (not affiliated, and I'm sorry to post a competitor here). It supports Windows and all the other platforms, and because they are based on Conda packages, they already have pretty good collection of existing packages.
Would be great for you guys to join forces, because the world would be a better place :)
4 remaining items
deadcoder0904 commentedon Nov 17, 2023
so how do i install it?
felipecrs commentedon Nov 17, 2023
lol, what do you mean? pkgx is not supported on Windows yet. I supposed you knew that already since you said:
jhheider commentedon Nov 17, 2023
Your best bet for windows support at present is WSL2; since it's a full (enough) linux environment running inside your windows, everything we know of works in the appropriate linux way.
deadcoder0904 commentedon Nov 18, 2023
oh i thought since you mentioned
curl.exeexists, so i thought installation worked haha.yeah i dont use wsl2. i tried setting up one-time but gave up bcz of some errors. didnt try again. i'll wait for windows support without wsl like bun.sh :)
felipecrs commentedon Feb 13, 2025
I was hoping that pkgx v2 would work on Alpine, but unfortunately it doesn't yet:
tannevaled commentedon May 18, 2026
Coming at this from the consumer end: I just ported pkgm to Windows in pkgxdev/pkgm#87 and hit the wall that
pkgm install <anything>returnsError: CmdNotFound("...")regardless of what pkgm itself does. Probed the dist bucket exhaustively — 0 of 842 top-level prefixes underdist.tea.xyzhave awindows/subdir, so pkgx on Windows can only fetchpkgx.exeitself (frompkgx.sh/Windows/x86_64.zip) and nothing else.Wanted to share a snapshot of where each downstream piece sits so the discussion has concrete state to point at, and propose a pilot path.
Current state, layer by layer
pkgxCLI (Rust)#[cfg(windows)]branches inexecve.rs(Command::spawn replaces execve),install.rs(lockfile),utils.rs::find_program(looks up .exe→.bat→.cmd).libpkgx(Rust)pkgxitself with cfg-guards; the Deno bindings atdeno.land/x/libpkgx@v0.21.0work on Windows for read-only operations (verified:pkgm --versionruns end-to-end onwindows-latest).pkgxdev/setupinstaller.ps1installs to$env:LOCALAPPDATA\pkgxand adds it to the userPATH. No system install, no UAC.pkgxdev/pantryget-matrix.tsinvalid platformfor anywindows/*entry. PR proposed: pkgxdev/pantry#12946 — accept the opt-in without changing default behaviour. No-op for every package currently in the pantry.pkgxdev/brewkitbuild@v1shell: bashthroughout (Git Bash works on Windows runners), but every script downstream assumes coreutils, codesign branches for macOS, etc. Not catastrophic but real porting work.dist.tea.xyzpkgm%LOCALAPPDATA%\pkgmprefix, hardlink fallback for symlinks,.cmdstub wrappers,PATH_SEPawareness,pkgx.exelookup. Smoke tests green.So the order of operations is roughly: pantry planner → brewkit build → dist artifact → pkgx resolution → pkgm install. Today everything except brewkit-and-the-planner is essentially ready; the artefact pipeline is the choke point.
Concrete sub-tasks worth splitting out of this megaticket
pkgxdev/pantry— acceptwindows/x86-64inget-matrix.ts(PR proposed). Risk-free, opt-in only.pkgxdev/brewkit— add a Windows codepath tobuild@v1. The hard one. Open question: is the goal feature-parity with the POSIX build (autoconf/cmake-style pkgs), or only a subset?pkgxdev/distinfrastructure — once brewkit can emit Windows tarballs, confirm the S3 bucket layout follows the same<project>/windows/x86-64/v<version>.tar.xzconvention pkgx already expects.libpkgxResumable, parallel downloads #48 — status update would help downstream porters know what to expect.Pragmatic pilot: cross-compile-friendly seed packages
Rather than a full brewkit-on-Windows port (which is months of work), a "Windows mini-build" path could unblock useful packages quickly. Packages whose
package.ymlbuild:script is essentiallygo buildorcargo install --target x86_64-pc-windows-msvccross-compile from a Linux runner without needing Windows at all — Go and Rust ship cross-compilers in their standard toolchain, and the GHAubuntu-latestrunner has both.Candidate seed packages (all currently in pantry, all pure-Go or pure-Rust):
charm.sh/gum,sharkdp/fd,sharkdp/hyperfine,taskfile.dev,BurntSushi/ripgrep,bat,crates.io/zoxide,crates.io/dustIf brewkit grew a "cross-compile to Windows from Linux" mode for these, ~30-50% of the pantry's pure-Go/Rust packages could ship Windows builds without a Windows runner being involved at all. Real-Windows-runner work would then only be needed for C/C++/autoconf packages.
Happy to take on the pantry planner PR (already drafted), and to prototype the cross-compile pilot for one Go pkg if useful. The brewkit-side work is too deep into pkgxdev internals for me to volunteer blind — but if there's an existing design direction, pointers welcome.
cc: pkgxdev/pkgm#87
jhheider commentedon May 18, 2026
the available windows packages are under
v2/: https://dist.pkgx.dev/?prefix=v2/ . note that the work in manifests seems to have been rolled back a year ago, so we don't currently have infrastructure for building more.tannevaled commentedon May 18, 2026
Thanks for the correction — my probe was on the v1-layout root prefix and completely missed
v2/. Re-running against the right path now, the picture is much friendlier than my comment suggested:15 of 88 packages under
v2/have awindows/subdir today (all built artifacts, two versions in some cases, e.g.v2/bun.sh/windows/x86-64/v1.2.5.tar.xzand…/v1.2.10.tar.xz):That's a coherent toolchain layer — language runtimes (deno, bun, go, rust, python, perl), build tools (cmake, ninja, nasm), and base libs (openssl, sqlite, zlib, libarchive, curl). Enough that, with the manifest infrastructure revived, application-layer Windows packages could plausibly come back online via cross-compile (Go/Rust toolchains are right there).
That reframes the picture: the missing piece isn't a Windows build path from scratch — it's reviving (or replacing) the manifest work that was rolled back a year ago. Two questions on that:
If the second answer is "operational, no fundamental block" then I think the proposal in my previous comment still stands — pilot a cross-compile-from-Linux path for the application-layer packages on top of the v2 toolchain you've already got. If the first answer surfaces a specific brewkit-side prototype, the right move might be to rebase that rather than reinvent.
(Updating my pkgm draft and my pantry PR notes to refer to
v2/<pkg>/windows/correctly. Sorry for the noise on the first round.)ci(windows): correct comment block re: dist Windows state
tannevaled commentedon May 18, 2026
Thanks for the correction — my probe was on the v1-layout root prefix and completely missed
v2/. Re-running against the right path now, the picture is much friendlier than my comment suggested:15 of 88 packages under
v2/have awindows/subdir today (all built artifacts, two versions in some cases, e.g.v2/bun.sh/windows/x86-64/v1.2.5.tar.xzand…/v1.2.10.tar.xz):That's a coherent toolchain layer — language runtimes (deno, bun, go, rust, python, perl), build tools (cmake, ninja, nasm), and base libs (openssl, sqlite, zlib, libarchive, curl). Enough that, with the manifest infrastructure revived, application-layer Windows packages could plausibly come back online via cross-compile (Go/Rust toolchains are right there).
That reframes the picture: the missing piece isn't a Windows build path from scratch — it's reviving (or replacing) the manifest work that was rolled back a year ago. Two questions on that:
If the second answer is "operational, no fundamental block" then I think the proposal in my previous comment still stands — pilot a cross-compile-from-Linux path for the application-layer packages on top of the v2 toolchain you've already got. If the first answer surfaces a specific brewkit-side prototype, the right move might be to rebase that rather than reinvent.
(Updating my pkgm draft and my pantry PR notes to refer to
v2/<pkg>/windows/correctly. Sorry for the noise on the first round.)jhheider commentedon May 18, 2026
this is the commit that removed the v2 pantry-style work: pkgxdev/manifests@37ff43e
without having access to the specific dev notes from that date, my suspicion is that the more flexible programmable build manifests needed to support windows were suffering from exploding complexity.
tannevaled commentedon May 19, 2026
so, the scope of the project have changed or do we still want native windows support?
jhheider commentedon May 19, 2026
I think the goal of windows builds is a good idea. possibly we need a different approach. The underlying driver for the manifests work was that bash scripts worked poorly in native windows, and therefore
brewkitwas unsuitable. perhaps the answer is have a brewkit-like tool that will work for windows, and a build.windows pantry key for whatever script that entails.feat(matrix): allow pkg.yml to opt in to windows/x86-64
tannevaled commentedon May 22, 2026
Picking the Windows-native thread back up — opened pkgxdev/brewkit#346 with a concrete architecture sketch + first-deliverable proposal (cross-compile
jqfrom Linux runners via llvm-mingw, produce a.tar.xz, smoke-test on Win11).Builds on the patterns converged on last week's brewkit issues:
bklibcvenv) → port tobkwinvenvfor hermetic DLL bundlingbuild.skip: fix-patchelf) → applies directly to afix-peanaloglinux-sysroot:directive for host-independent builds brewkit#343 (linux-sysroot) → siblingwindows-sdkdirective@mxcl re. your note about needing a bootstrap procedure for new platforms — this RFC sketches one for Windows. Happy to drive it if there's appetite.