From 250ba86581a25249edd6f65078fff0d272cc67d5 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Wed, 8 Jul 2026 05:30:11 -0700 Subject: [PATCH] fix(tree): build upstream tree --- docs-internal/registry-parity-worklist.md | 27 +- packages/runtime-core/commands/tree | Bin 68858 -> 111664 bytes software/tree/bin/tree | Bin 68858 -> 111664 bytes .../tree/native/crates/cmd-tree/Cargo.toml | 14 - .../tree/native/crates/cmd-tree/src/main.rs | 4 - software/tree/native/crates/tree/Cargo.toml | 9 - software/tree/native/crates/tree/src/lib.rs | 268 ------------------ software/tree/package.json | 2 +- software/tree/test/tree-test.test.ts | 4 +- toolchain/Cargo.lock | 11 - toolchain/c/Makefile | 35 ++- .../wasi-libc/0024-install-group-header.patch | 22 ++ .../wasi-libc/0025-group-lookup-compat.patch | 58 ++++ 13 files changed, 138 insertions(+), 316 deletions(-) mode change 100644 => 100755 packages/runtime-core/commands/tree mode change 100644 => 100755 software/tree/bin/tree delete mode 100644 software/tree/native/crates/cmd-tree/Cargo.toml delete mode 100644 software/tree/native/crates/cmd-tree/src/main.rs delete mode 100644 software/tree/native/crates/tree/Cargo.toml delete mode 100644 software/tree/native/crates/tree/src/lib.rs create mode 100644 toolchain/std-patches/wasi-libc/0024-install-group-header.patch create mode 100644 toolchain/std-patches/wasi-libc/0025-group-lookup-compat.patch diff --git a/docs-internal/registry-parity-worklist.md b/docs-internal/registry-parity-worklist.md index 48055a4d65..2b9883875c 100644 --- a/docs-internal/registry-parity-worklist.md +++ b/docs-internal/registry-parity-worklist.md @@ -106,7 +106,7 @@ actual backing: | **git** | TODO | our hand-rolled git from `sha1`+`flate2` | **real git** (upstream C), patched for WASI — **NOT gitoxide** | | **fd** | TODO | our `secureexec-fd` on raw `regex` (not sharkdp/fd) | real **fd** (sharkdp) | | **findutils** (`find`,`xargs`) | TODO | our hand-rolled on `regex`/shims | real GNU findutils, or `uutils/findutils` | -| **tree** | TODO | our hand-rolled, zero deps | real `tree`, or an established one | +| **tree** | DONE | our hand-rolled, zero deps | real `tree`, or an established one | | **grep** | TODO | our `secureexec-grep` on raw `regex` (**not** an established grep pkg) | **real GNU grep**, or a popular established grep (ripgrep's `grep` crates) | | **zip** | DONE | our 203-line `zip.c` over zlib/minizip (not Info-ZIP) | real Info-ZIP, or an established lib's CLI | | **unzip** | DONE | our 669-line `unzip.c` over zlib/minizip | real Info-ZIP unzip | @@ -188,9 +188,28 @@ works (`wasi-spawn` broker), so `xargs` is not a blocker. test client**, not an HTTP fetcher; real curl covers GET. But it's imported by `packages/shell` and is the client in cross-runtime network tests — migrate those dependents first, then drop the command. -- **tree — easy.** Real `tree` (Steve Baker) is a tiny plain-`Makefile` C program; - compile its `.c` directly against the sysroot. Pure readdir/stat — no - sockets/threads/spawn. +- **tree — DONE.** Replaced the custom Rust `secureexec-tree`/`cmd-tree` crates + with upstream Steve Baker `tree` 2.3.2 from `OldManProgrammer/unix-tree`. + It builds as a C toolchain command from pinned source, stages into + `@agentos-software/tree`, and refreshes the tracked runtime-core fallback + command. Sysroot fixes live one layer down: install `` and provide + deterministic missing-group lookup stubs so upstream `-g` support links + without a tree-source WASI branch. Proof: upstream source inspection in + `2026-07-08T05-13-50-0700-tree-fetch-upstream-2.3.2-inspect.log`; sysroot + patch check passes in + `2026-07-08T05-18-16-0700-tree-wasi-libc-patch-check-group-lookup-fixed.log`; + Makefile build passes in + `2026-07-08T05-20-02-0700-tree-upstream-make-build.log`; package build and + check-types pass in + `2026-07-08T05-21-08-0700-tree-package-build-upstream-after-install.log` and + `2026-07-08T05-21-08-0700-tree-check-types-upstream-after-install.log`; e2e + tree tests pass 6/6 in + `2026-07-08T05-29-45-0700-tree-vitest-upstream-final.log`; aggregate C + `programs` builds 58 commands in + `2026-07-08T05-30-44-0700-tree-make-programs-final.log`; Cargo metadata no + longer includes the deleted Rust tree crates in + `2026-07-08T05-33-17-0700-tree-cargo-metadata-after-removing-empty-dirs.log`. + Rev: `kpmrwxln` — `fix(tree): build upstream tree`. - **fd — moderate.** Swap `cmd-fd` to depend on real `fd-find` (like coreutils→`uu_*`; `fd-lock` is already patched). Only real issue: the parallel `ignore`/crossbeam walker needs the **serial-thread patch** (uu_sort pattern). diff --git a/packages/runtime-core/commands/tree b/packages/runtime-core/commands/tree old mode 100644 new mode 100755 index 49e9c7c18dce4cc2e1c20e40448157c3d95ae5c5..811c63e5fdd94672bb25d89498a17583381b63d6 GIT binary patch literal 111664 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 literal 68858 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]IgAXywF zVg`KY#^e%Hd@*^sQA z4e$)sk}wjPB_5&Wl1w2ViBKn0l29ka6EaSylZSlxdgmt8NjivzU})_20(P_3a*wSx zi!oMk2kM9dl#_>nEdJpAyuVJ$3?~6*nE$Dj?{0kIXx}$}(D3Wemi1+h{_+pZ{s{Q4 z0nN;?l3{I6GOeyvwRA$Qn~`uegIBywjB07sOeN#V^d5C+Mi`o5nP_5j%SsRrtTne4M(MQQc`hqsG+uXw0zcj~P>|)MSPp zCDUdyp{X+-wT@ab)frdlueAPut8PZ0SfRmMnSP?(w-Hphsi_h_ocf1CA79KKu6 zMs$Numqsi=8+$UNC>XRJ(oFna#bTzZ8JVP>R)D>`i)XZisu>1)mB<<-L-CYuYKf#lnNG24QOEHlLk}~$IwR7P z@Tfkfh10RjXe=FWG_qzUJ01p8QV;=5csNbHNKG{~N1EFkA}tM(riRIm_QCenhHQFo zTAxTaq>}0EWW%0xHk?Whhp7hoHjOyHrke(YC~RgD{H8f&hDXeBHl3VoG|Us%eq1*+ zs{Hcs!QD;L|6x1IL>OtT~!B5$0%e?4)#utB9cy zY>1^ZgD@d`Pf|b3FhrCu{o#q2nLH`I7>}i~VgOm3(AM*^2{aMc6Iz(#8(P6mXg3@Q zrnKP zVsOm}b(`S~%oE2oNO7rPjcmrR*6F70Da;5VHsgBjrv0j_(i`FFYc7^r-I!AO_+s28 zfrB%%k$aY=?T+}&y~*)$awLXh@x8EsaM6l=i`YIrnNY{|49sIPmQoEZo;6IkH@*+5 zzjSu}Y^LIT%bU^1wKO$kc{1W|9}8H<2L28?f?}6%rp0IRK+Qjy7=_n_F6nX2G^sd$ z(x}FUfwIX=`B){fr%Scn7*!wVV_iNYE=MP=XUX)wSPBD4Y5TO4YCW3qQdi(_>BfxU zW5r3aUY$|Y5wuKCTvi=)>2>%eM5mupW043{CJ!+K{Ns!&x zFrZq|2LYAvbd}hNl+#MJut|{dDi1;M2xkhSJKz}>M6ci7FD^oTf)Fhg(4yiOmU@K| zS#Y5$ae*jHLHwC4{zP6V6PU#0DydqmL6BB(dj!$%6&g@q7F#6yBw6$dE(yP3M!j`Y zjiSfp6NN~l7^sjVK3Q7k4dD2X=<2{D6jM4pqWCEZ$9LS+oFpDu$AoXzGU=c&q%v1h zWU}B>#cd+PIAvjhs0g1F7tSdWmU$NV1)*MwU~K55uvFLp-iwIIdGPx=Ent8sDj4|+ z(IdP`j1!o^g25m|O|JD2Xx{Bit%Tp1GX6)=ZSTC1ryECXql$G6q*F?)1O zgQ)2e7j9uTAcxePfIlJ^TNOo`hcUa#SU{4PvdYbb)8#WERp3CQIFBik%i|HKgP}x|Q?< zSq}I2xEPy@ZzuinW73~ECY^x-&ne1J={ls(Z)|Mb9fv)J#Ty#nW~!?zo1QRY<8`4S z6)~fjIMVccmk=96Cq&*UibVNFvB27(A%}p&$txauB?M>09 zj;2lob()%+n_HS&o7W#04c)O0{P(ti(m~UNJ2`Bt0xXCO$1bEB-L>ocDS0N8*dZ zE6S_le+fU6e=feMzAgW^_$TFEA+UVa+N}eJZoBO>mtOmipSa@-kACD~m)qOEX6@O( zd*)fWVt#w{>|Iyf_uxZcYkOtRRaaksn_N;_J}1=F+SS|F|Dmk|3GJHe4j%gQzkTyt zN51#`1z-NkqAIt?=dYO8-r04}y+3}z8@=Jid)&TNYe$lYK31*|KK|xg=M6vd=;}7BeHtxY0K(bI=VJ}Xv?-8JI_AnybCTIifbc#&B@EIxaQ9L9{T*uGY>wL*1!GJ zm;Uj>C6_9a+#roeLbx%vzglW4tCE*`Ym}8rk6gMUcb{viyi~69wEDM7t%2#Nx6q%2z2A#YZ~vd`^xuTz)H0dKq1r7U#I0r$54XiG_pyV2uwEt9G} zV(yvkL6^r{+vr(Qxo}xk#XRp;G}cqH!0mHw@+|je{p;7RaII2&t}|VN5|kAGxgN24 zxMq{bm%Ho2CB1&1tK^g}m(NvERWHxWJ+eBnBe2Qq>+4;#$+M%R-|aiwbIy`dpR3PT zEp6o?EG`trf-_q=m9Ly>4-Nmm*9*vm*EWN?FLww1Zi%+n>;K2fpyw*B^iGM{ob;$`4mw?%P&2$Gy`n$yGkD(dY)xF5Q3v2HD zz&3e<1c)VX>}dX}Rwx`#&!&bnSmnI@ew4o$n=)y9kQ1&~>hRrPAlC zmmw5VlfPbG=<-Xs2k>Z1Meg^W)l!+X7PxDrvj1rLd{4N%L0VE;Tb8>{-hXqYf9^+b zQo=wBV(ENu?(0i3f!y;8r-MrFRqtdF1IVzuORb$I$b0awOfBb_Io z>&;y`zsgtX-6H3%aovAsV4mD`yFC5kGIu~x_J2`b;lhK1a_;NWBB`uI@dw#QV7eEA z+Cfel0D!Fo0cEl)WtH8i46)s(9AZ(Bil1hgPnLys}ci>u|kzkJ?c4uG+}n zA8Nnt=;8MFgxaX!i$#}~)OOrodV6Pher?z9YHByHYrTC(P3+aP-o7Zdb3lJ}=dF*$ z&Sp=?c4^PvzKgwBdk%Z$_H!S6t@iw1z5eP2&-^^LTV-!v__lDxU=|xn4RC<=Vb3n1 z#`UrBn2|IA7Dlq^ICpgtI<~uLzYm@?IW(y$H90n((#GJl0a9f23_Lg8NNC0vq#(Ni z!@2I9y4P>$>FpbdrA#ejWHnzP$o>I&FZVOH4Bt-rDx`^T z+qIDmS}FxUlY+}r*lon-)r6LK?WRw^c2f@jtFPU3lYN!nq$8Kg*{MSv4zhX!ovJt{ zO`eYP`~^Ix^b_!ouEY0H(1N1$Z*fh?%X$73t_j^a>1U5guS1%=s135kmosopo|co| zi0gSE2O0hrd?OFdN&oJc^dFH{i=I=OAy$QI%IAZW!g=~kp0eN))7H1qigUr@UZ zv4%v$mWF<({3_f#4dkTTa2)|z9;)N{HuNutqmHc~19A}qsxhj+9|(*^?YaW^mO&&V#oj8lMfXyRgB%5ia82zIA|~Ek2OYc&-#-D- z+z%k`hCNqo+0w;m%!K!^?Mv!e6LLL_I4!~vB>!3h)R0MzQSKx~Cz6*~VUDrb6jz5~ z1P&6%q$BtaU|A$+B&ftQlb8p;G_1JSaZac5}XR)!}-+R7(+b`pj-FNM}c+s_w z)T1BHcp7ls2*NMjvY1M>A$CrY2t-S0Ki$zZt8GKeWDWF<_-@5L_;~=@t;Qz5W~8R5 zs0l{L#t?ri;ObeK<0#xP6-6CQ$P+_gj!A*&!Jy&QErX=A;8eADR=Q zPSCI1mM$N}4Z^Gx;!x8uurRKtGuS7#I$pFBy>;gn9?*dv)du;z(HzkSU1i&FZw$p& zXVX+mVlD1n<+J9q60$*j>jF8vRB=r*Oge{wBWh!0)9OSLTkb>KckVcAaDDfN&1Y@z z-q5?IX$baVU((Ri+>Gsm(W7`UMN<+bDK^s6lpfOCsTH5$`JhSbZnN4Mm^~|uL-)k7QXNF?=wt8_r48C5C?|%nXgW|C? z+2bOaQ)6+ikSgDd+YVoXY{4lYJ`XW6(clFaXD&Bj%>?a5sPqq}g^nrEP6@=PJ|F$^ zMP_r2qI3uYS6x`C1QyL3=cnmfd-ruWr^*>8HnOa6F7G;Z0LJQsgvWh z2SeR=RuXM8X=Y5s4G{{Z9#81m6b{A^LwIfZ_}vtafW!(ZC#+{NLK_>;OwrQRpr>I$ zNaV3In$gCvBtj8&BZdPaklkc zeLMtPMS5g&iYpaPVI)$T6L(Ce$8pF73pbPm`)RBVM;i!x`rA;Dg%g+Pw z(erx=FoYNxH+0i%NWj1%GanHKZD^#;`Nf)UBlc>AP^ley>MSZK1cBiV>*+m($-?;* z$Z>WY$63(t?D#n1wRBlHDbrFjtQ_@X_k3%!RN(O#aVYg67Jy9#=CD(n&2a{B}g?1;s2GR@Auuu3z6 zJoA?YInJOp_=ms-`|wTrS^^r$rc&$m$<>LewA!7XT5CtF<1x}Es9qWeY9>f*VCVlL zSdASf^gVBf{}V=(Y{0R7ni$m~P*$%VKwk)RP+#bSBJ4Z32cd&?$XmcJA9Ml+bq9_C zLD^xQS|QICJm-Al=by-a?}1UF-3oXl{M zhggq-q3Ac0fSm{*5Qd<7c99iWPjin1K90@r!}WkkyNB4mOpHN%pxB#n*-Jg!nHlNe z7hH-5v*Uvq-Rd&LnPP6lH}(re{H{kmw003rDPFq>A8kOFkdG>44~s!|1?~l~sE`fc zs%QGh=5EW|+#YUnH{?w&kTS_g@eLT4Ak^&n@gW7}#zLqxW*dO1XRN9gwMhvv8fii5$ITJ-5SH48VBy z5Do6I zP28De-Fj`~MwOnW>s!dQVR`1JZ9OboZ{D&|4!YB0+qDg3*EF+-8#WVV&%oKhEo8{- zu22E8W8F45-U2g5O~8ot7fjdAg6Z0sH(kB@2>L%Tat7aE>rZd9&D8*ztDVJ$s#tzV zev8u%ELLJ3TcD#LUns~bKtEoNH38p^pf1p6&~DIP&@|{E=u@D>pnE}I0zD4;KIq4w*Fo=q z-UkIR=kr0!L0zC;&^FL+&?v|NO@JI;(irKQh{i@~8V8M;b|xG?(KQkAfSyrak~{JR z$WNvjx<`3vE~sAOBVAKIhriUu@0SFbd}@%*1uX|f zK^sBmfl{C;&{d#MgYE%+5%e9jeIE2E=)0g-L2rTH z1Nlx1vKr7bP&a4*GziLqt^s`oc5zxKlXC=0J-zS+9nVgyaYYPn;z~H_%rHNU-%Wc%RhK!ec5C$H@#F4Y5vU@JtRPxa?&dSESH3 z_amq%fw$ro^1|hKCAO=l$8p+(0bKwqk|JRFBB0OJXPX@qQUP$_BqZS67R@~z@VJJ3 zR@UbPNvV83R)YuVhK&(P$}uz`p@gLo2<*cV9Z8~E155lq=`3Q*>$3N(ryz2)iSI{GvT*ePOQx&)Xd`n33i5sR15l9sCELrAmU8WQm(Uh zZTVJdNQG&dbvy5H@s1Qyj);%M#z-}(hWtaWLiULAx-h#98{=^_0lqUQU93gN)6BF5 zYKs-ojvUZDSbmOeg$e`O!I?*G#VrU8j@$RBSB0AeYw1J|ihRf-p(wt~A*&_UmaEP< z;LN+z>#ehp`GDm3NaY|=Orc%6XUOZAS+lH=#v$syINUyVRN|(vsXZJ}{%2F{cj7dx6`{f??uJ9nc zQW|1!;ONRt@`dtBc8<^~e2jfVxkcC@_6hGOtoyoO%rHL=%`kQ=yeYhG;3(F?{{bdL BNlE|! diff --git a/software/tree/bin/tree b/software/tree/bin/tree old mode 100644 new mode 100755 index 49e9c7c18dce4cc2e1c20e40448157c3d95ae5c5..811c63e5fdd94672bb25d89498a17583381b63d6 GIT binary patch literal 111664 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 literal 68858 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]IgAXywF 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 BNlE|! diff --git a/software/tree/native/crates/cmd-tree/Cargo.toml b/software/tree/native/crates/cmd-tree/Cargo.toml deleted file mode 100644 index e85593575d..0000000000 --- a/software/tree/native/crates/cmd-tree/Cargo.toml +++ /dev/null @@ -1,14 +0,0 @@ -[package] -workspace = "../../../../../toolchain" -name = "cmd-tree" -version.workspace = true -edition.workspace = true -license.workspace = true -description = "tree standalone binary for secure-exec VM" - -[[bin]] -name = "tree" -path = "src/main.rs" - -[dependencies] -secureexec-tree = { path = "../tree" } diff --git a/software/tree/native/crates/cmd-tree/src/main.rs b/software/tree/native/crates/cmd-tree/src/main.rs deleted file mode 100644 index ee799a4287..0000000000 --- a/software/tree/native/crates/cmd-tree/src/main.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let args: Vec = std::env::args_os().collect(); - std::process::exit(secureexec_tree::main(args)); -} diff --git a/software/tree/native/crates/tree/Cargo.toml b/software/tree/native/crates/tree/Cargo.toml deleted file mode 100644 index e316d0fda4..0000000000 --- a/software/tree/native/crates/tree/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -workspace = "../../../../../toolchain" -name = "secureexec-tree" -version.workspace = true -edition.workspace = true -license.workspace = true -description = "tree implementation for secure-exec standalone binaries" - -[dependencies] diff --git a/software/tree/native/crates/tree/src/lib.rs b/software/tree/native/crates/tree/src/lib.rs deleted file mode 100644 index 71cfb7044c..0000000000 --- a/software/tree/native/crates/tree/src/lib.rs +++ /dev/null @@ -1,268 +0,0 @@ -//! tree -- list directory contents in a tree-like format -//! -//! Recursive directory walk with box-drawing characters. -//! Supports -a (show hidden), -d (dirs only), -L depth, -I exclude pattern. - -use std::ffi::OsString; -use std::fs; -use std::io::{self, Write}; -use std::path::Path; - -const DEFAULT_MAX_DEPTH: usize = 256; -const MAX_TOTAL_ENTRIES: usize = 100_000; -const MAX_DIRECTORY_ENTRIES: usize = 100_000; - -pub fn main(args: Vec) -> i32 { - let str_args: Vec = args - .iter() - .skip(1) - .map(|a| a.to_string_lossy().to_string()) - .collect(); - - let mut show_hidden = false; - let mut dirs_only = false; - let mut max_depth: Option = None; - let mut exclude_pattern: Option = None; - let mut paths: Vec = Vec::new(); - - let mut i = 0; - while i < str_args.len() { - match str_args[i].as_str() { - "-a" => show_hidden = true, - "-d" => dirs_only = true, - "-L" => { - i += 1; - if i >= str_args.len() { - eprintln!("tree: option '-L' requires an argument"); - return 1; - } - match str_args[i].parse::() { - Ok(d) => max_depth = Some(d), - Err(_) => { - eprintln!("tree: invalid level '{}'", str_args[i]); - return 1; - } - } - } - "-I" => { - i += 1; - if i >= str_args.len() { - eprintln!("tree: option '-I' requires an argument"); - return 1; - } - exclude_pattern = Some(str_args[i].clone()); - } - s if s.starts_with('-') => { - eprintln!("tree: unknown option '{}'", s); - return 1; - } - _ => paths.push(str_args[i].clone()), - } - i += 1; - } - - if paths.is_empty() { - paths.push(".".to_string()); - } - - let stdout = io::stdout(); - let mut out = stdout.lock(); - let mut dir_count: usize = 0; - let mut file_count: usize = 0; - - for (idx, path) in paths.iter().enumerate() { - if let Err(e) = writeln!(out, "{}", path).and_then(|_| { - walk_tree( - Path::new(path), - "", - 1, - max_depth, - show_hidden, - dirs_only, - exclude_pattern.as_deref(), - &mut dir_count, - &mut file_count, - &mut out, - ) - }) { - eprintln!("tree: {}", e); - return 1; - } - if idx + 1 < paths.len() { - if let Err(e) = writeln!(out) { - eprintln!("tree: {}", e); - return 1; - } - } - } - - if let Err(e) = writeln!(out) { - eprintln!("tree: {}", e); - return 1; - } - if dirs_only { - if let Err(e) = writeln!( - out, - "{} director{}", - dir_count, - if dir_count == 1 { "y" } else { "ies" } - ) { - eprintln!("tree: {}", e); - return 1; - } - } else { - if let Err(e) = writeln!( - out, - "{} director{}, {} file{}", - dir_count, - if dir_count == 1 { "y" } else { "ies" }, - file_count, - if file_count == 1 { "" } else { "s" } - ) { - eprintln!("tree: {}", e); - return 1; - } - } - - match out.flush() { - Ok(()) => 0, - Err(e) => { - eprintln!("tree: {}", e); - 1 - } - } -} - -fn matches_exclude(name: &str, pattern: &str) -> bool { - // Simple glob matching: supports * as wildcard - if pattern.contains('*') { - let parts: Vec<&str> = pattern.split('*').collect(); - if parts.len() == 2 { - let (prefix, suffix) = (parts[0], parts[1]); - return name.starts_with(prefix) && name.ends_with(suffix); - } - // Fallback: check if any non-wildcard part matches - parts.iter().all(|p| p.is_empty() || name.contains(p)) - } else { - name == pattern - } -} - -fn walk_tree( - dir: &Path, - prefix: &str, - depth: usize, - max_depth: Option, - show_hidden: bool, - dirs_only: bool, - exclude: Option<&str>, - dir_count: &mut usize, - file_count: &mut usize, - out: &mut W, -) -> io::Result<()> { - if let Some(max) = max_depth { - if depth > max { - return Ok(()); - } - } else if depth > DEFAULT_MAX_DEPTH { - return Ok(()); - } - - let mut entries: Vec = match fs::read_dir(dir) { - Ok(rd) => { - let mut entries = Vec::new(); - for entry_result in rd { - let entry = entry_result?; - if entries.len() >= MAX_DIRECTORY_ENTRIES { - return Err(io::Error::new( - io::ErrorKind::InvalidInput, - format!("too many entries in {}", dir.display()), - )); - } - entries.push(entry); - } - entries - } - Err(e) => { - writeln!(out, "{}[error opening dir: {}]", prefix, e)?; - return Ok(()); - } - }; - - // Sort entries alphabetically - entries.sort_by(|a, b| a.file_name().cmp(&b.file_name())); - - // Filter entries - entries.retain(|e| { - let name = e.file_name().to_string_lossy().to_string(); - // Skip hidden unless -a - if !show_hidden && name.starts_with('.') { - return false; - } - // Skip excluded patterns - if let Some(pat) = exclude { - if matches_exclude(&name, pat) { - return false; - } - } - // Skip files if -d - if dirs_only { - if let Ok(ft) = e.file_type() { - if !ft.is_dir() { - return false; - } - } - } - true - }); - - let count = entries.len(); - - for (idx, entry) in entries.iter().enumerate() { - if *dir_count + *file_count >= MAX_TOTAL_ENTRIES { - return Err(io::Error::new( - io::ErrorKind::InvalidInput, - "too many tree entries", - )); - } - - let is_last = idx + 1 == count; - let connector = if is_last { - "\u{2514}\u{2500}\u{2500} " // └── - } else { - "\u{251c}\u{2500}\u{2500} " // ├── - }; - - let name = entry.file_name().to_string_lossy().to_string(); - let file_type = entry.file_type()?; - let is_dir = file_type.is_dir() && !file_type.is_symlink(); - - write!(out, "{}{}", prefix, connector)?; - writeln!(out, "{}", name)?; - - if is_dir { - *dir_count += 1; - let child_prefix = if is_last { - format!("{} ", prefix) - } else { - format!("{}\u{2502} ", prefix) // │ - }; - walk_tree( - &dir.join(&name), - &child_prefix, - depth + 1, - max_depth, - show_hidden, - dirs_only, - exclude, - dir_count, - file_count, - out, - )?; - } else { - *file_count += 1; - } - } - - Ok(()) -} diff --git a/software/tree/package.json b/software/tree/package.json index bca79a144c..45d2aee6d2 100644 --- a/software/tree/package.json +++ b/software/tree/package.json @@ -2,7 +2,7 @@ "name": "@agentos-software/tree", "version": "0.3.3", "type": "module", - "license": "Apache-2.0", + "license": "GPL-2.0-or-later", "description": "tree directory listing for secure-exec VMs", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/software/tree/test/tree-test.test.ts b/software/tree/test/tree-test.test.ts index 4ad659d78f..0c505f5ff0 100644 --- a/software/tree/test/tree-test.test.ts +++ b/software/tree/test/tree-test.test.ts @@ -65,8 +65,8 @@ describeIf(!wasmSkip, 'tree command behavior', () => { expect(result.stdout).toContain('types.ts'); expect(result.stdout).toContain('index.ts'); expect(result.stdout).toContain('README.md'); - // Should show 2 directories (src, lib) and 4 files - expect(result.stdout).toMatch(/2 director/); + // Upstream tree reports the displayed root plus src/lib. + expect(result.stdout).toMatch(/3 director/); expect(result.stdout).toMatch(/4 file/); }, TREE_TEST_TIMEOUT_MS); diff --git a/toolchain/Cargo.lock b/toolchain/Cargo.lock index 5356b72d22..0c8cfd808d 100644 --- a/toolchain/Cargo.lock +++ b/toolchain/Cargo.lock @@ -1352,13 +1352,6 @@ dependencies = [ "uu_tr", ] -[[package]] -name = "cmd-tree" -version = "0.1.0" -dependencies = [ - "secureexec-tree", -] - [[package]] name = "cmd-true" version = "0.1.0" @@ -4030,10 +4023,6 @@ dependencies = [ "tar", ] -[[package]] -name = "secureexec-tree" -version = "0.1.0" - [[package]] name = "secureexec-wasi-http" version = "0.1.0" diff --git a/toolchain/c/Makefile b/toolchain/c/Makefile index 484e923abc..1d23d461e2 100644 --- a/toolchain/c/Makefile +++ b/toolchain/c/Makefile @@ -68,10 +68,10 @@ COMMANDS_DIR ?= ../target/wasm32-wasip1/release/commands # Fast real commands installed by the default software gate. Slow/heavy commands # (duckdb, vim) remain available through explicit parent `make cmd/`. -COMMANDS := zip unzip envsubst sqlite3 curl wget http_get +COMMANDS := zip unzip envsubst sqlite3 curl wget tree http_get # Programs requiring patched sysroot (Tier 2+ custom host imports) -PATCHED_PROGRAMS := http_get_test isatty_test getpid_test getppid_test getppid_verify userinfo pipe_test dup_test spawn_child spawn_exit_code pipeline kill_child waitpid_return waitpid_edge syscall_coverage getpwuid_test signal_tests sigaction_self sigaction_behavior delayed_tcp_echo delayed_kill pipe_edge tcp_accept_spawn tcp_echo tcp_server http_server udp_echo unix_socket signal_handler http_get dns_lookup sqlite3 curl wget fs_probe +PATCHED_PROGRAMS := http_get_test isatty_test getpid_test getppid_test getppid_verify userinfo pipe_test dup_test spawn_child spawn_exit_code pipeline kill_child waitpid_return waitpid_edge syscall_coverage getpwuid_test signal_tests sigaction_self sigaction_behavior delayed_tcp_echo delayed_kill pipe_edge tcp_accept_spawn tcp_echo tcp_server http_server udp_echo unix_socket signal_handler http_get dns_lookup sqlite3 curl wget tree fs_probe # Discover all package command and test-program C source files. ALL_SOURCES := $(foreach dir,$(C_SOURCE_DIRS),$(wildcard $(dir)/*.c)) @@ -89,7 +89,7 @@ endif ifeq ($(wildcard $(PATCHED_SYSROOT)/lib/wasm32-wasi/libc.a),) CUSTOM_WASM_PROG_NAMES := else - CUSTOM_WASM_PROG_NAMES := curl wget sqlite3 + CUSTOM_WASM_PROG_NAMES := curl wget sqlite3 tree endif WASM_PROG_NAMES := $(sort $(basename $(notdir $(SOURCES))) $(CUSTOM_WASM_PROG_NAMES)) @@ -156,6 +156,8 @@ WGET_URL := https://ftp.gnu.org/gnu/wget/wget-$(WGET_VERSION).tar.gz WGET_UPSTREAM_BUILD_DIR := $(BUILD_DIR)/wget-upstream WGET_UPSTREAM_OVERLAY_INCLUDE_DIR := overlays/wget/include WGET_UPSTREAM_OVERLAY_FILES := $(wildcard $(WGET_UPSTREAM_OVERLAY_INCLUDE_DIR)/*.h) +TREE_VERSION := 2.3.2 +TREE_URL := https://gitlab.com/OldManProgrammer/unix-tree/-/archive/$(TREE_VERSION)/unix-tree-$(TREE_VERSION).tar.gz MINIZIP_URL := https://github.com/madler/zlib/archive/refs/tags/v1.3.1.zip # duckdb-wasm currently documents DuckDB v1.5.0 in its README. We build the # matching upstream DuckDB tag ourselves with our patched WASI/POSIX sysroot. @@ -166,6 +168,10 @@ DUCKDB_URL := https://github.com/duckdb/duckdb/archive/refs/tags/$(DUCKDB_VERSIO LIBS_DIR := libs LIBS_CACHE := .cache/libs +TREE_SOURCES := color.c file.c filter.c hash.c html.c info.c json.c list.c tree.c unix.c util.c xml.c strverscmp.c +TREE_FILES := $(addprefix $(LIBS_DIR)/tree/,$(TREE_SOURCES) tree.h) +TREE_WASM_FLAGS := -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 + libs/sqlite3/sqlite3.c libs/sqlite3/sqlite3.h libs/sqlite3/shell.c: @echo "Fetching sqlite3..." @mkdir -p $(LIBS_CACHE) $(LIBS_DIR)/sqlite3 @@ -176,6 +182,17 @@ libs/sqlite3/sqlite3.c libs/sqlite3/sqlite3.h libs/sqlite3/shell.c: $(LIBS_CACHE)/sqlite-amalgamation-*/shell.c \ $(LIBS_DIR)/sqlite3/ +$(TREE_FILES): $(LIBS_DIR)/tree/.fetched + +$(LIBS_DIR)/tree/.fetched: + @echo "Fetching upstream tree $(TREE_VERSION)..." + @mkdir -p $(LIBS_CACHE) $(LIBS_DIR)/tree + @curl -fSL "$(TREE_URL)" -o "$(LIBS_CACHE)/tree-$(TREE_VERSION).tar.gz" + @rm -rf "$(LIBS_CACHE)/unix-tree-$(TREE_VERSION)" + @tar -xzf "$(LIBS_CACHE)/tree-$(TREE_VERSION).tar.gz" -C "$(LIBS_CACHE)" + @cp $(addprefix $(LIBS_CACHE)/unix-tree-$(TREE_VERSION)/,$(TREE_SOURCES) tree.h) $(LIBS_DIR)/tree/ + @touch $@ + libs/zlib/zutil.c: @echo "Fetching zlib..." @mkdir -p $(LIBS_CACHE) $(LIBS_DIR)/zlib @@ -520,6 +537,18 @@ $(NATIVE_DIR)/sqlite3: libs/sqlite3/shell.c libs/sqlite3/sqlite3.c $(NATIVE_DIR)/sqlite3_cli: $(NATIVE_DIR)/sqlite3 cp $< $@ +# tree: upstream Steve Baker tree compiled from pinned C source. +$(BUILD_DIR)/tree: $(TREE_FILES) $(WASI_SDK_DIR)/bin/clang $(PATCHED_SYSROOT)/lib/wasm32-wasi/libc.a + @mkdir -p $(BUILD_DIR) + $(CC) --target=wasm32-wasip1 --sysroot=$(SYSROOT) -O2 -I include/ \ + $(TREE_WASM_FLAGS) -I$(LIBS_DIR)/tree -o $@ \ + $(addprefix $(LIBS_DIR)/tree/,$(TREE_SOURCES)) + +$(NATIVE_DIR)/tree: $(TREE_FILES) + @mkdir -p $(NATIVE_DIR) + $(NATIVE_CC) $(NATIVE_CFLAGS) $(TREE_WASM_FLAGS) -I$(LIBS_DIR)/tree -o $@ \ + $(addprefix $(LIBS_DIR)/tree/,$(TREE_SOURCES)) + # zip: links zlib + minizip ZLIB_SRCS := libs/zlib/adler32.c libs/zlib/compress.c libs/zlib/crc32.c libs/zlib/deflate.c \ libs/zlib/infback.c libs/zlib/inffast.c libs/zlib/inflate.c libs/zlib/inftrees.c \ diff --git a/toolchain/std-patches/wasi-libc/0024-install-group-header.patch b/toolchain/std-patches/wasi-libc/0024-install-group-header.patch new file mode 100644 index 0000000000..89f6e834d8 --- /dev/null +++ b/toolchain/std-patches/wasi-libc/0024-install-group-header.patch @@ -0,0 +1,22 @@ +Install POSIX group lookup declarations in the AgentOS WASI sysroot. + +Upstream tools such as tree include for optional group-name display. +The patched sysroot already carries musl's group lookup implementation and +AgentOS exposes deterministic gid/getgroups behavior, so the header should be +installed instead of forcing application-level WASI branches. + +diff --git a/scripts/install-include-headers.sh b/scripts/install-include-headers.sh +index 4a9f079..d589a77 100755 +--- a/scripts/install-include-headers.sh ++++ b/scripts/install-include-headers.sh +@@ -62,7 +62,7 @@ MUSL_OMIT_HEADERS+=("sys/procfs.h" "sys/user.h" "sys/kd.h" "sys/vt.h" \ + "sys/swap.h" "sys/sendfile.h" "sys/inotify.h" "sys/quota.h" "sys/klog.h" \ + "sys/fsuid.h" "sys/io.h" "sys/prctl.h" "sys/mtio.h" "sys/mount.h" \ + "sys/fanotify.h" "sys/personality.h" "elf.h" "link.h" "bits/link.h" \ +- "scsi/scsi.h" "scsi/scsi_ioctl.h" "scsi/sg.h" "sys/auxv.h" \ +- "shadow.h" "grp.h" "mntent.h" "resolv.h" "pty.h" "ulimit.h" "sys/xattr.h" \ ++ "scsi/scsi.h" "scsi/scsi_ioctl.h" "scsi/sg.h" "sys/auxv.h" \ ++ "shadow.h" "mntent.h" "resolv.h" "pty.h" "ulimit.h" "sys/xattr.h" \ + "wordexp.h" "sys/membarrier.h" "sys/signalfd.h" \ + "net/if.h" "net/if_arp.h" \ + "net/ethernet.h" "net/route.h" "netinet/if_ether.h" "netinet/ether.h" \ diff --git a/toolchain/std-patches/wasi-libc/0025-group-lookup-compat.patch b/toolchain/std-patches/wasi-libc/0025-group-lookup-compat.patch new file mode 100644 index 0000000000..febdbaf4bf --- /dev/null +++ b/toolchain/std-patches/wasi-libc/0025-group-lookup-compat.patch @@ -0,0 +1,58 @@ +Provide group lookup compatibility entry points in AgentOS wasi-libc. + +Tree links getgrgid() for optional `-g` group-name output. AgentOS VMs expose +numeric gid/getgroups behavior but do not project a group database, so group +name lookups should fail deterministically and let callers fall back to numeric +gids. + +diff --git a/libc-bottom-half/sources/host_resource_user.c b/libc-bottom-half/sources/host_resource_user.c +index 8d91a2f..aa78a47 100644 +--- a/libc-bottom-half/sources/host_resource_user.c ++++ b/libc-bottom-half/sources/host_resource_user.c +@@ -2,6 +2,8 @@ + + #include ++#include ++#include + #include + #include + #include + #include +@@ -48,5 +50,37 @@ int getgroups(int size, gid_t list[]) { + list[0] = getgid(); + return 1; + } + ++struct group *getgrgid(gid_t gid) { ++ (void)gid; ++ errno = ENOENT; ++ return NULL; ++} ++ ++struct group *getgrnam(const char *name) { ++ (void)name; ++ errno = ENOENT; ++ return NULL; ++} ++ ++int getgrgid_r(gid_t gid, struct group *grp, char *buf, size_t buflen, ++ struct group **result) { ++ (void)gid; ++ (void)grp; ++ (void)buf; ++ (void)buflen; ++ *result = NULL; ++ return ENOENT; ++} ++ ++int getgrnam_r(const char *name, struct group *grp, char *buf, size_t buflen, ++ struct group **result) { ++ (void)name; ++ (void)grp; ++ (void)buf; ++ (void)buflen; ++ *result = NULL; ++ return ENOENT; ++} ++ + int getrlimit(int resource, struct rlimit *rlim) {